【发布时间】:2012-03-15 13:48:14
【问题描述】:
我有一个问题,我在 java 中有这个计时器代码,当它执行时它会在它自己的 JFrame 标签上显示一个倒计时计时器,我想要做的是在另一个 JFrame 表单标签上显示这个计时器而不必移动代码到其他类。
我希望你们能帮我解决这个问题,谢谢大家。
这是 Timer 类的代码:
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
public class TimerExample extends JFrame {
final JLabel label;
Timer countdownTimer;
int timeRemaining = 10;
public TimerExample() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(200, 200);
label = new JLabel(String.valueOf(timeRemaining), JLabel.CENTER);
getContentPane().add(label);
countdownTimer = new Timer(1000, new CountdownTimerListener());
setVisible(true);
countdownTimer.start();
}
class CountdownTimerListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (--timeRemaining > 0) {
label.setText(String.valueOf(timeRemaining));
} else {
label.setText("Time's up!");
countdownTimer.stop();
}
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new TimerExample();
}
});
}
}
谢谢
【问题讨论】:
-
您能否详细说明您的问题?你到底想做什么,为什么?您是否有一个主窗口,希望从中启动另一个显示倒计时计时器的窗口(通常是对话框)?此外,通常在这样的情况下,您首先发布您的代码尝试解决此问题,然后显示任何错误消息或异常并描述任何行为问题。这样我们就可以准确地知道您可能做错了什么以及如何更好地帮助您。
-
这段代码甚至无法编译;构造函数包含的代码似乎假定此类扩展
JFrame,但正如所写的那样,它没有。你的问题是什么,确切地说——如何使它不依赖于JFrame?看起来你已经成功了一半。