java每秒一次_Java – 每秒重绘一次组件?

我想在每秒后重新绘制组件,但它不起作用.我在想的是:

try{

while(true){

Thread.currentThread().sleep(1000);

gc.cb.next();

gc.repaint();

}

}

catch(Exception ie){

}

解决方法:

我建议使用javax.swing.Timer来解决这个问题,它会定期在Event Dispatch线程上触发一个ActionEvent(注意你应该只调用重绘和/或操作来自这个线程的Swing组件).然后,您可以定义ActionListener以拦截事件并在此时重新绘制组件.

JComponent myComponent = ...

int delay = 1000; //milliseconds

ActionListener taskPerformer = new ActionListener() {

public void actionPerformed(ActionEvent evt) {

myComponent.repaint();

}

};

new Timer(delay, taskPerformer).start();

另请注意,SwingWorker可能不合适,因为它通常用于具有已定义的开始和结束的后台任务,而不是周期性任务.

标签:java

来源: https://codeday.me/bug/20190722/1497986.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值