8.3.1 | JFrame |
Das JFrame zeigt ein Fenster mit Titelleiste und optionaler Menüleiste an.
Wenn das Fenster durch die plattformspezifische Operation geschlossen wird (bei Windows beispielsweise durch einen Klick auf das X), so wird das Fenster mitfilfe von setVisible(false) versteckt. Diese Grundeinstellung (WindowConstants.HIDE_ON_CLOSE) kann durch die Methode setDefaultWindowCloseOperation(int closeOperation) verändert werden. Als Argument dienen die folgenden Konstanten:
- WindowConstants.DO_NOTHING_ON_CLOSE
Mit dieser Einstellung passiert von sich aus nichts. Wenn man mit einer eigenen Aktion darauf reagieren möchte, muss man mit dieser Einstellung einen java.awt.event.WindowListener registrieren:frame.setDefaultWindowCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE); // Vor dem Beenden wird nachgefragt frame.addWindowListener(new WindowAdapter () { public void windowClosing(WindowEvent e) { if (JOptionPane.showConfirmDialog( "Sind Sie sicher?", "Beenden", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) System.exit(0); } });- WindowConstants.HIDE_ON_CLOSE
Das Fenster wird mit setVisible(false) versteckt.- WindowConstants.DISPOSE_ON_CLOSE
Das Fenster wird geschlossen und alle nativen Ressourcen des Fensters werden freigegeben.- JFrame.EXIT_ON_CLOSE
Hierdurch wird die Applikation durch System.exit(0) sofort beendet. Dies darf aufgrund der Sandbox nicht bei Applets verwendet werden.
public static void main(String[] argv) { JFrame f = new JFrame("JFrame"); JMenuBar menuBar = new JMenuBar(); menuBar.add(new JMenu("Datei")). add(new JMenuItem("Beenden")); f.setJMenuBar(menuBar); f.setSize(200,100); // In der Mitte des Bildschirms platzieren f.setLocation( (Tookit.getDefaultToolkit().getScreenSize().width- f.getSize().width) / 2, (Tookit.getDefaultToolkit().getScreenSize().height- f.getSize().height) / 2); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }