2 Stimmen

java's DO_NOTHING_ON_CLOSE

Ich habe diesen Codeschnipsel:

public class Main_class {
    public static void main(String[] args) {

        JFrame first = new JFrame();
        first.setTitle("Hello");
        first.setSize(300, 100);
        first.setLocation(300, 100);
        first.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        first.setVisible(true);
    }
}

Ich erhalte primitive Rahmen, meine Frage ist, wie soll ich das Fenster ohne Windows-Manager Aufgabe zu schließen, danke im Voraus

2voto

aioobe Punkte 397211

Versuchen Sie

first.setVisible(false);
first.dispose();

und wenn Sie die Anwendung (einschließlich des Versand-Threads) beenden wollen

System.exit(0);

Das sollte genügen :-)

2voto

dacwe Punkte 42433

Wenn Sie wollen um es trotzdem zu schließen, würde ich einen Close-Listener implementieren, der den Frame löscht:

public static void main(String[] args) {

    final JFrame first = new JFrame();
    first.setTitle("Hello");
    first.setSize(300, 100);
    first.setLocation(300, 100);

    first.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {

            // do other stuff....

            first.setVisible(false);
            first.dispose();
        }
    });

    first.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    first.setVisible(true);
}

1voto

Bozho Punkte 570413

Wenn Sie Ihr Programm beenden wollen, dann verwenden Sie:

 first.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Sie können dies manuell tun, indem Sie System.exit(0)

0voto

Abhinav Sarkar Punkte 22853

In solchen Fällen (wenn Sie den Standard-Schließvorgang als DO_NOTHING_ON_CLOSE ) gibt es eine Schaltfläche in der grafischen Benutzeroberfläche, die die Bereinigung vornimmt und das Programm beendet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X