小编d56*_*d56的帖子

是否为java调用方法中的每个循环执行高级操作,该方法返回一个数组以便每次迭代?

他,

我对java中的高级for循环有疑问.如果有一个方法调用Method.returnArray(),我用for(ArrayElement e:Method.returnArray())迭代数组{// do smth}

每次迭代都会调用.returnArray()吗?

谢谢.

java foreach

31
推荐指数
3
解决办法
7891
查看次数

任何类型安全的JSP模板替代品

有没有比JSP更安全的东西?我没有通过谷歌找到任何有意义的答案.我们目前使用Spring MVC框架和JSP来呈现HTML.我开始讨厌JSP渲染的动态特性,因为你引用了一个模型,${model.someAttribute}但没有办法知道这个属性在给定模块中是否可用,或者指定了模板所期望的模型类型.重构模型的getter变得非常困难,因为Eclipse不知道哪些模板使用模型,也无法将getter与模板中的属性访问器相关联.

有没有一个模板技术,这比通过命令式代码吐出HTML代码和比JSP更多的类型/编译安全性更难看?

java jsp

6
推荐指数
1
解决办法
758
查看次数

XSL-FO在设置表格单元格背景时会覆盖/重叠表格边框

我遇到了一个问题,并没有找到解决方案/解决方法(虽然有类似的问题已提出)与细胞背景的XSL-FO问题.我们正在使用Apache FOP 0.25并快速升级到新版本,目前另一种PDF处理器是不可行的.

问题是,当我在单元格上设置背景颜色时,新的背景填充覆盖了表格的边框,否则可见(0.5pt实体).我尝试了几种方法来克服它,但它们都导致了不理想的结果:

  • 将边框设置为1pt - 边框变为可见但具有不同的宽度,具体取决于它是否沿着具有背景颜色或没有背景颜色的单元格运行.它显然太胖了.
  • 分别在具有背景颜色的每个表格单元格上设置边框.这有效但我看到在没有背景的单元格上设置的边框之间的间隙和带有的边框之间的间隙.在下面的示例中,单元格1.1和单元格2.1的垂直边界之间会出现明显的间隙,但不会介于2.1和3.1之间.

    __________________________
    |cell 1.1: background    | 
    |cell 2.1: no background |
    |cell 3.1: no background |
    --------------------------
    
    Run Code Online (Sandbox Code Playgroud)

是否有任何实用的解决方法可以解决这个问题?我在table-cell元素上设置background-color,这应该是正确的,对吧?

非常感谢

pdf-generation xsl-fo apache-fop

5
推荐指数
1
解决办法
1万
查看次数

将JToggleButton与JPanel放在JTable单元格中

我需要一个JToggleButton(具有自定义背景),其中包含一个JPanel,其中包含多个JLabel.那部分有效.

此按钮随后放在JTable单元格中,并由用户按下.问题是我只能在第二次点击时按下按钮.在第一次点击时,首先使用JLabel跳转到面板,然后再转到实际按钮.

我尝试了几件事来尝试解决这个问题,但同样的问题仍然存在.A)将带有标签的JPanel直接放在JToggleButton#add()上.B)使用JLayeredPane将Button和JPanel放置到不同的层上,其中JToggleButton采用约束整数( - ),以便具有JLabel的JPanel保持在顶部可见

你有什么建议吗?谢谢

下面是一个示例代码,说明了该问题.单击该按钮仅适用于第二次.

public class ClickableCustomButtonInTable extends JToggleButton {

public ClickableCustomButtonInTable() {
    Dimension d = new Dimension(100, 100);
    JLabel lFirst = new JLabel("1st label");
    lFirst.setPreferredSize(d);

    JLabel lSecond = new JLabel("2nd label");
    lSecond.setPreferredSize(d);

    JPanel panel = new JPanel();
    panel.setOpaque(true);

    panel.setLayout(new BorderLayout());
    panel.add(lFirst, BorderLayout.NORTH);
    panel.add(lSecond, BorderLayout.SOUTH);
    add(panel);
    addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("Button clicked");
        }
    });
}

private static class CustomButtonRenderer implements TableCellRenderer {

    private final ClickableCustomButtonInTable button = new ClickableCustomButtonInTable();

    @Override
    public Component …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jlayeredpane jtogglebutton

5
推荐指数
2
解决办法
1492
查看次数

SQLAlchemy + pyTelegramBotAPI:在一个线程中创建的 SQLite 对象只能在同一个线程中使用

试图了解以下问题的原因,我真的很头疼。我们正在使用以下库的组合:

SQLAlchemy一次使用NullPool,现在配置为使用QueuePool. 我还使用以下习语为每个线程启动一个新的数据库会话(根据我的理解)

Session = sessionmaker(bind=create_engine(classes.db_url, poolclass=QueuePool))

@contextmanager
def session_scope():
   session = Session()
   try:
      yield session
      session.commit()
   except:
      session.rollback()
      raise
   finally:
      session.close()

@bot.message_handler(content_types=['document'])
def method_handler:
   with session_scope() as session:
      do_database_stuff_here(session)
Run Code Online (Sandbox Code Playgroud)

尽管如此,我仍然遇到这个烦人的异常: (sqlite3.ProgrammingError) SQLite objects created in a thread can only be used in that same thread

有任何想法吗?;) 特别是,我不明白如何在 db 操作之间出现另一个胎面......这可能是讨厌的异常的原因

更新 1:如果我将其更改poolclassSingletonThreadPool,那么似乎不会再出现错误了。但是,文档SQLAlchemy表明它不是生产盛行。

python sqlite multithreading sqlalchemy py-telegram-bot-api

4
推荐指数
1
解决办法
1957
查看次数

google wave:他们是如何使divs可点击的

由于我们在移动应用程序中面临GWT性能问题,因此我使用GWT开发了Google Wave代码.

我认为那里的所有按钮都有小部件但是如果你用firebug查看生成的HTML,你会发现在可点击的div上没有设置onclick属性.我想知道他们如何实现它有一个元素发出click或mousedown事件,看起来既不是一个小部件也不是注入onclick属性.

能够创建这样的组件肯定会让我更进一步优化性能.

谢谢.ps:还没有谷歌去开源客户端代码.一直无法找到它.

gwt google-wave gwt2

0
推荐指数
1
解决办法
503
查看次数