如何调用对Java GUI的立即更新?(与Thread.sleep()冲突)

如何调用对Java GUI的立即更新?(与Thread.sleep()冲突),第1张

如何调用对Java GUI的立即更新?(与Thread.sleep()冲突)

不要在Swing主线程EDT上调用Thread.sleep(…)。 曾经 。而是使用Swing计时器

考虑使用JLabel显示图像,然后可以通过简单地换出ImageIcons来“翻转”卡片。翻转第二张卡后,如果不匹配,则启动一个非重复的Swing计时器,延迟时间为xxxx
ms,并在Timer的ActionListener的actionCommand方法中将两个JLabel的状态都还原为默认的ImageIcon。

可以在这里找到javax.swing.Timer教程:如何使用Swing计时器

编辑:
关于您对使用g.drawString的评论:由于您要做的就是交换JLabel的文本,因此现在变得更加容易。但是稍后,如果您决定升级程序以显示图像,则已经准备就绪。

编辑2:
关于您有关创建新的ActionListener类的问题:为此,我将使用匿名内部类。例如:

  int delayTime = 2 * 1000;  javax.swing.Timer myTimer = new Timer(delayTime, new ActionListener() {     @Override     public void actionPerformed(ActionEvent e) {        // TODO: put in the pre you want called in xxx mSecs.     }  });  myTimer.setRepeats(false);  myTimer.start();


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5427144.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存