栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何调用对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();


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451618.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号