如何停止javax.swing.Timer类
时间: 2024-12-16 11:30:52 浏览: 8
在Java Swing中,如果你想要停止`javax.swing.Timer`,你需要在创建的`TimerListener`类的`actionPerformed()`方法中添加对`stop()`方法的调用。当不再需要定时任务时,只需调用该方法即可。这里是停止`Timer`的示例:
```java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TimerExample extends JFrame {
private Timer timer; // 保存引用,以便于停止它
private boolean isRunning; // 标记定时器是否正在运行
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new TimerExample().setVisible(true);
}
});
}
public TimerExample() {
// 初始化...
timer = new Timer(1000, new TimerListener());
isRunning = true; // 初始设定为运行状态
// 开始定时器
startTimer();
}
private void startTimer() {
if (isRunning) {
timer.start();
}
}
private class TimerListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// ... 你的业务逻辑 ...
// 停止计时,如果需要
if (!isRunning) {
timer.stop(); // 如果已标记为不运行,则停止
}
}
}
// 若要停止定时器,只需调用 stopTimer() 方法
public void stopTimer() {
isRunning = false; // 设置为不运行
if (timer != null && timer.isRunning()) { // 只有在运行时才停
timer.stop();
}
}
}
阅读全文