2017-05-13 7 views
0

Ich baue einen Texteditor und ich weiß nicht, wie man mit einem Listener auf Swing-Exit-Taste, die automatisch erstellt wird, umzugehen. Ich möchte Dialoge verwenden, wenn der Benutzer die Datei nicht speichert, zum Beispiel die Exit-Taste drücken.Handling Exit-Taste, die automatisch erstellt wird?

+0

Willkommen bei SO. Was bedeutet es automatisch erstellt? Durch den GUI-Builder? Verwenden Sie also den GUI-Builder, um einen Listener hinzuzufügen. Wenn es einen Listener hat - editiere ihn. Wenn dies nicht der Fall ist und Sie keinen hinzufügen können, können Sie ihn nicht verwenden. – c0der

+2

Vielleicht bedeutet er die Fensterdekorationen von Windows, Mac OS oder welches Betriebssystem auch? –

+0

Es ist nicht klar, welche Art von Exit-Button du meinst. Sie sollten einen Screenshot hinzufügen, der es zeigt. –

Antwort

0

Vorausgesetzt, dass Sie einen Griff an Ihrem Fenster haben, vorausgesetzt, es ist ein Window Gegenstand (zB JFrame oder andere Art von Fenster), können Sie hören zu WindowEvent Ereignisse. Hier ist ein Beispiel mit windowClosed, Sie können es durch windowClosing ersetzen, wenn Sie es zuvor abfangen müssen.

frame.addWindowListener(new WindowAdapter() { 
     @Override 
     public void windowClosed(WindowEvent e) { 
      // do something here 
     } 
    }); 
0

Go schrittweise:

  1. Deklarieren Sie eine boolean Variable saved und setzen Sie den Standardwert false.
  2. Wenn der Benutzer die Datei speichert, ändern Sie sie in "true"
  3. Wenn die Exit-Schaltfläche gedrückt wird, überprüfen Sie die Variable.
  4. Wenn true, beenden Sie andernfalls den Benutzer zum Speichern der Datei.

So, endlich diese Code-Schnipsel wie folgt aussieht:

public boolean saved = false; 

saveButton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     saved = true; 
     //Code to save file 
    } 
}); 

exitButton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     if(saved) 
      System.exit(0); 
     else { 
      //Code to prompt user to save file 
     } 
    } 
}); 
+0

Ich kann Hörer nicht hinzufügen, um die Schaltfläche zu beenden, weil diese Schaltfläche automatisch erstellt – thenewproblem

+1

@thenewproblem alle wichtigen Informationen zu der Frage hinzufügen. Nicht in Kommentaren. Was bedeutet es automatisch erstellt? Wenn es einen Listener hat - editiere ihn. Wenn dies nicht der Fall ist und Sie keinen hinzufügen können, können Sie ihn nicht verwenden. – c0der

1
final JFrame f = new JFrame("Good Location & Size"); 
// make sure the exit operation is correct. 
f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
f.addWindowListener(new WindowAdapter() { 
    public void windowClosing(WindowEvent we) { 
     // pop the dialog here, and if the user agrees.. 
     System.exit(0); 
    } 
}); 

Wie in dieser answer to Best practice for setting JFrame locations gesehen, die vor dem Verlassen der Rahmenposition & Größe serialisiert.

Verwandte Themen