首页 / JAVA / java – 更新JFrame
java – 更新JFrame
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 更新JFrame,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1694字,纯文字阅读大概需要3分钟。
内容图文
![java – 更新JFrame](/upload/InfoBanner/zyjiaocheng/721/6bbb92490fbb4a918c56a8eadb92eff9.jpg)
我有一个JFrame,我想模拟倒计时(如火箭发射).所以我通过隐藏各种控件(setVisible(false))并显示带有文本的JLabel来设置框架(这是应该倒计时的文本:3,2,1,Go).
JLabel上的文字从“3”开始.我的目的是简单地执行程序等待1秒,然后将文本更改为“2”,再等一秒,更改为“1”等.最后,我隐藏了JLabel并重新显示了所有控件,一切都正常进行.
我在做什么不起作用.它似乎等待了正确的时间,当它完成时,我的JFrame看起来很棒并按预期工作.但在倒计时方法的4秒钟内,我看到的只是一个白色的JFrame.不是我想要的3,2,1.
这是我的代码.谁能看到我做错了什么?谢谢!
public void countdown() {
long t0, t1;
myTest.hideTestButtons(true);
myTest.repaint();
t0 = System.currentTimeMillis();
do {
t1 = System.currentTimeMillis();
} while ( (t1 - t0) < 1000);
myTest.TwoSeconds();
myTest.repaint();
t0 = System.currentTimeMillis();
do {
t1 = System.currentTimeMillis();
} while ( (t1 - t0) < 1000);
myTest.OneSecond();
myTest.repaint();
t0 = System.currentTimeMillis();
do {
t1 = System.currentTimeMillis();
} while ( (t1 - t0) < 1000);
myTest.Go();
myTest.repaint();
t0 = System.currentTimeMillis();
do {
t1 = System.currentTimeMillis();
} while ( (t1 - t0) < 1000);
myTest.hideTestButtons(false);
myTest.repaint();
}
public void TwoSeconds() {
lblCountdown.setText("2");
}
public void OneSecond() {
lblCountdown.setText("1");
}
public void Go() {
lblCountdown.setText("Go!");
}
解决方法:
请改用Timer.在大多数情况下,积极的等待是非常不鼓励的.
以下是您需要集成的代码类型:
final Timer ti = new Timer(0, null);
ti.addActionListener(new ActionListener() {
int countSeconds = 3;
@Override
public void actionPerformed(ActionEvent e) {
if(countSeconds == 0) {
lblCountdown.setText("Go");
ti.stop();
} else {
lblCountdown.setText(""+countSeconds);
countSeconds--;
}
}
});
ti.setDelay(1000);
ti.start();
内容总结
以上是互联网集市为您收集整理的java – 更新JFrame全部内容,希望文章能够帮你解决java – 更新JFrame所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。