meine JFrame Schließen der Nähe Schaltfläche (X) und zur Einstellung der JVM ohne Verwendung

stimmen
2

Ich habe einen Rahmen, der einen anderen Rahmen instanziiert, aber ich will nicht die enge (x) auf der instanziiert Rahmen verwenden., so habe ich eine Taste. Wie Code, den ich, dass diese Schaltfläche verwendet werden kann, den instanziiert Rahmen zu schließen, ohne die JVM zu verlassen.

Veröffentlicht am 09/12/2008 um 19:16
quelle vom benutzer
In anderen Sprachen...                            


6 antworten

stimmen
5

Ihre eigenen Schließen-Schaltfläche ist seltsam UI hat und sollte vermieden werden.

Wird man von einem Rahmen zu befreien, wenn die eigene Schaltfläche geklickt wird können Sie einfach tun:

jFrame.setVisible(false);

oder

jFrame.dispose();

wenn Sie möchten, vollständig loszuwerden, es zu bekommen.

Bei Rahmen wollen Sie nicht die JVM auf die Schließen-Schaltfläche, um beenden angeklickt angeben:

jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

oder

jFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

Je nachdem, welche das Verhalten Sie wollen.

Beantwortet am 10/01/2009 um 09:55
quelle vom benutzer

stimmen
0

Sie könnten die setVisible versuchen () oder entsorgen () -Funktionen

Für Ihre Hauptklasse ...

    public class Main {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    //new DemoTryCatch()
    new Frame1();
}

}

Für Ihre erste Rahmenklasse ...

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;


public class Frame1 extends JFrame{
JButton newFrame=new JButton("Frame 2");
public Frame1() {
    // TODO Auto-generated constructor stub
    super("Frame 1");
    add(newFrame);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(300,300);
    newFrame.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            // TODO Auto-generated method stub
            new Frame2();\\instantiating your new Frame
        }
    });
}
}

Für den instanziiert Rahmen ...

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;


public class Frame2 extends JFrame{

JButton CloseFrame2=new JButton("CloseFrame2");
public Frame2() {
    // TODO Auto-generated constructor stub
    super("Frame 1");
    add(CloseFrame2);
    setVisible(true);
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    setSize(300,300);
    CloseFrame2.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            setVisible(false);\\You could also use dispose()
        }
    });
}
}
Beantwortet am 16/06/2014 um 10:53
quelle vom benutzer

stimmen
0

Ich stimme mit Tom, ich glaube, dass Sie in dem Code notiert:

[framename].setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

EXIT_ON_CLOSE bedeutet, dass es die Anwendung vollständig verlassen wird.

Sie können durch Klicken auf seiner X-Taste, indem Sie das Fenster schließen:

[framename].setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

Hier ist ein Beispielcode:

package answers;

import javax.swing.JFrame;

public class Answers {

    public static void main(String[] args) {

        //frame 1
        JFrame frame1 = new JFrame("this is frame 1");
        frame1.setSize(500, 500);
        frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        frame1.setLocationRelativeTo(null); // ignore this its just to place frame 1 on the center

        //now this is the code for frame2
        //frame 2
        JFrame frame2 = new JFrame("this is frame 2");
        frame2.setSize(500, 500);
        frame2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        frame1.setVisible(true);
        frame2.setVisible(true);

    }

}
Beantwortet am 31/01/2014 um 15:16
quelle vom benutzer

stimmen
0

Sie könnten verwenden , setVisible(false)um nur die instanziiert JFrame aus Sicht zu verstecken

Beantwortet am 22/10/2013 um 01:52
quelle vom benutzer

stimmen
0

Benutze das:

jFrame.setUndecorated(true);
jFrame.getRootPane().setWindowDecorationStyle(JRootPane.NONE);
Beantwortet am 16/11/2009 um 16:46
quelle vom benutzer

stimmen
-1

Ich bin nicht sicher , ob im Recht , aber sie nennen könnte dispose(). Die javadoc schlägt vor , Sie es aber mit wieder öffnen können show().

Beantwortet am 12/07/2013 um 00:05
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more