【发布时间】:2016-11-07 18:32:37
【问题描述】:
我想使用线程创建一个倒数计时器(这是我被告知要尝试的)。我确实制作了 UI,但是一旦我添加了线程,它就会冻结。我试过使用Thread.yield(),但没有用。我尝试做我在另一个问题中看到的invokeLater() 技巧,但它一直让我不能convert void to Thread。
每经过一秒后,UI 应该更新 JTextField。
field = new JTextArea();
Button = new JButton();
Button.addActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
for (int i = Integer.parseInt(field.getText()); i >= 0; i--)
{
try
{
Thread.sleep(1000);
}
field.setText(Integer.toString(i));
}
}
}
);
【问题讨论】:
-
你不能在 UI 线程上休眠。
-
请详细说明我对使用线程 D 有点新鲜:
-
你的 Thread.sleep(1000);正在阻塞实现小部件的线程......
标签: java multithreading oop timer