Ham*_*amy 6 layout swing paint
我似乎无法在Swing中强制布局.我有一个JComponent添加到JLayeredPane我和我设置边框JComponent.然后,我想立即重新绘制所有内容 - 不是在"请尽快做这个"的意义上invalidate(),而是同步并立即.有帮助吗?我似乎无法找到正确的方法,而我所有的阅读invalidate(), validate(), repaint(), doLayout(), etc只是让我更加困惑!
让 Swing 更新显示的最可靠方法是使用SwingUtilities.invokeLater. 在你的情况下,它看起来像
SwingUtilities.invokeLater(new Runnable {
public void run() {
somecomponent.repaint();
}
});
Run Code Online (Sandbox Code Playgroud)
我意识到“invokelater”听起来并不像它立即执行任何操作,但实际上,与直接调用例如相比,以这种方式发布的事件往往执行得相当快somecomponent.repaint()。如果你绝对必须让你的控制代码等待GUI更新,那么也可以invokeAndWait,但我的经验是,这很少有必要。
另请参阅:有关 Swing 中事件分派的文档。
| 归档时间: |
|
| 查看次数: |
7011 次 |
| 最近记录: |