我正在建立一个聊天室JFrame
。我希望每200 毫秒JFrame
刷新一次,这样每当输入新文本时,它就会出现在.JFrame
我尝试使用while(true)
但JFrame
冻结。
如何在代码中添加计时器?
我正在 JFrame 中建立一个聊天室。我希望 JFrame 每 200 毫秒刷新一次,这样每当输入新文本时,它就会出现在 JFrame 内。
我尝试使用 while(true) 但 JFrame 冻结。
如何在代码中添加计时器?
不同意,JFrame
不能只刷新JComponent
( JTextComponent
) 并且只有在第二面有一些变化的情况下
200milisecond
时间很短,你不能在这短时间里写短信,我要设置750milis - one second
使用util.Timer
or 开始无限循环Runnable#Thread
,
使用布尔局部变量而不是while(true)
,例如 while(canRun)
,如果需要,循环可以停止和启动
Swing GUI
到from util.Timer
/的所有输出都Runnable#Thread
必须包装到invokeLater
,只有具有实际更改的方法,方法 fromSwing APIs
例如setText()
,append()
而不是整个方法, void 负责创建输出,连接等。
不要使用SwingWorker
,不是用于无限循环的适当 API,被指定只运行一次,
那么SwingWorkers
(从任何Timer
或调用Executor
)的几个实例可能存在并发,因为没有人可以保证每个结束和不是(几个实例)同时存在,然后从循环调用最佳选择Runnable#Thread
您也可以尝试计时器课程
Timer timer = new Timer(2000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//Some code here
}
});
timer.start();
有关更多详细信息,请参阅如何使用摆动计时器
希望这会帮助你。