Sie müssen entweder den WindowStateListener oder den WindowListener implementieren. Wenn Sie die Window verwenden könnte es so aussehen:
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.Timer;
public class Foo implements WindowListener {
private Timer timer;
public static void main(String args[]){
initTimerComponent();
}
private void initTimerComponent() {
int delay = 1000; //milliseconds
timer = new Timer(delay, null);
timer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
tempLabel.setVisible(true);
String tmp = "test";
tempLabel.setText("Temperature : " + tmp);
}
});
timer.start();
}
@Override
public void windowOpened(WindowEvent e) { }
@Override
public void windowClosing(WindowEvent e) {
timer.stop();
}
@Override
public void windowClosed(WindowEvent e) { }
@Override
public void windowIconified(WindowEvent e) { }
@Override
public void windowDeiconified(WindowEvent e) { }
@Override
public void windowActivated(WindowEvent e) { }
@Override
public void windowDeactivated(WindowEvent e) { }
}
Sie müssen implementieren sie alle als Window eine Schnittstelle ist und die erste konkrete Klasse eine Schnittstelle implementiert, ist gezwungen, alle seine abstrakten Methoden zu implementieren. Aber du brauchst eigentlich nur eine Methode.
Verwenden Sie diese Methode
public void windowClosing(WindowEvent e) {
timer.stop();
}
Ihre Timer zu stoppen, sobald das Fenster zu schließen, nachdem der Benutzer die roten X.
geklickt
siehe WindowStateListener – ControlAltDel
@ControlAltDel könnte man meinen Code ändern und mir zeigen, wie um es bitte zu benutzen? – fredjohnson
@fredjohnson, suchen Sie im Forum nach Beispielen. Sie kennen jetzt den zu suchenden Klassennamen. – camickr