我正在尝试制作一个 JDialog,它将在 JLabel 上向用户显示动态消息。
该消息应该是从 1 到 10 的计数(并且应该每秒更改一个数字)。
问题是,当我调试它时 - 它在“dia.setVisible(true);”之后立即停止,除非我关闭 JDialog ,否则不会继续。
有什么可能的方法来修复它吗?
谢谢。
看一下代码:
@Override
public void run() {
dia = new JDialog(parentDialog, true);
dia.setLocationRelativeTo(parentFrame);
String text = "Text ";
dia.setSize(300, 150);
jl = new JLabel(text);
dia.getContentPane().add(jl);
dia.setVisible(true);
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(1000);
jl.setText(text + " " + i);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
不要使用Thread.sleep(int)
对于 Swing GUI,导致冻结直到Thread.sleep(int)
ended
use Swing Timer
而不是通过使用来锁定 Swing GUIThread.sleep(int)
不要使用dia.setSize(300, 150)
, 学习如何LayoutManager
works
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)