我正在建立一个聊天室JFrame。我希望每200 毫秒JFrame刷新一次,这样每当输入新文本时,它就会出现在.JFrame
我尝试使用while(true)但JFrame冻结。
如何在代码中添加计时器?
我正在 JFrame 中建立一个聊天室。我希望 JFrame 每 200 毫秒刷新一次,这样每当输入新文本时,它就会出现在 JFrame 内。
我尝试使用 while(true) 但 JFrame 冻结。
如何在代码中添加计时器?
不同意,JFrame不能只刷新JComponent( JTextComponent) 并且只有在第二面有一些变化的情况下
200milisecond时间很短,你不能在这短时间里写短信,我要设置750milis - one second
使用util.Timeror 开始无限循环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();
有关更多详细信息,请参阅如何使用摆动计时器
希望这会帮助你。