javax.swing.Timer有初步的延迟;只需将其设置为即可
60* 60 * 1000。
actionPerformed()调用后一个小时,您将被呼叫
start()。
附录:这是一个按钮示例,该按钮在指定的时间段内隐藏了它的封闭窗口。
import java.awt.EventQueue;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.Jframe;import javax.swing.Timer;public class Timerframe extends Jframe { private void display() { this.setTitle("Timerframe"); this.setLayout(new GridLayout(0, 1)); this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); this.add(new TimerButton("Back in a second", 1000)); this.add(new TimerButton("Back in a minute", 60 * 1000)); this.add(new TimerButton("Back in an hour", 60 * 60 * 1000)); this.pack(); this.setLocationRelativeTo(null); this.setVisible(true); } private class TimerButton extends JButton { private final Timer timer; public TimerButton(String text, int delay) { super(text); this.addActionListener(new StartListener()); timer = new Timer(delay, new StopListener()); } private class StartListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { Timerframe.this.setVisible(false); timer.start(); } } private class StopListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { timer.stop(); Timerframe.this.setVisible(true); } } } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { new Timerframe().display(); } }); }}


