Das schließen eines JFrame nachdem ein button geklickt wird Java
Hallo ich Schreibe eine Art Menü für ein Verschlüsselungs-Programm, das ich Schreibe. Ich bin fertig mit dem Kern, und jetzt will ich versuchen, erstellen Sie eine GUI dafür. Hier ist der code für das erste Menü:
package matrix_with_GUI;
import javax.swing.*;
import java.awt.event.* ;
import java.awt.* ;
public class Main_Menu extends JFrame implements ActionListener{
private JButton action1 = new JButton ("");
private JButton action2 = new JButton ("");
private JPanel pane = new JPanel();
private JLabel lbl;
public static void main(String[] args) {
Main_Menu main = new Main_Menu();
}
public Main_Menu(){
super();
JPanel pane=new JPanel();
setTitle ("Start Menu") ;
JFrame frame = new JFrame("");
setVisible(true);
setSize (380, 260) ;
setLocation (450, 200) ;
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) ;
action1 = new JButton("Start");
action2 = new JButton("Exit");
lbl = new JLabel ("Welcome to the Matrix Encoder/Decoder!!!");
setLayout(new FlowLayout());
add (lbl) ;
add(action1, BorderLayout.CENTER);
action1.addActionListener (this);
add(action2, BorderLayout.CENTER);
action2.addActionListener (this);
}
@Override
public void actionPerformed(ActionEvent event) {
//TODO Auto-generated method stub
OptionsMenu x = new OptionsMenu();
if (event.getSource() == action1)
{
System.exit(0);
x.OptionsMenu();
}
else if(event.getSource() == action2){
System.exit(0);
}
}
}
Wenn die Start-Taste geklickt wird, wird das neue Menü kommt alles schön und gut, aber das erste Menü geöffnet bleibt. Gibt es eine Möglichkeit das schließen dieses erste Menü, UND öffnen Sie das zweite Menü mit den ersten button klicken? Ich bin sehr neu auf die GUI also die einfachste Lösung wäre sehr hilfreich. Auf einer seitlichen Anmerkung gibt es da eine einfache Möglichkeit zum verschieben der Start-Taste in die nächste Zeile? Dank
- Überprüfen Sie bitte: the-use-of-multiple-jframes-good-bad-practice
System.exit(0);
Wird die JVM zu beenden.- 1) nicht verlängern, Rahmen oder andere top-level-Container. Stattdessen erstellen & verwenden Sie eine Instanz von einem. 2) nicht die Größe des top-level-Container. Statt layout der content - & call
pack()
. System.exit(0);
bewirkt, dass es zu beenden, aber das beendet, ohne weiter auf das nächste Menü. Es sei denn, ich Stelle dies an der falschen Stelle, wird dies nicht funktionieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie 2 Möglichkeiten: Sie können ein Fenster Zuhörer ein, oder verwenden Sie die dispose () - Methode. Zu tun, die dispose () - geben Sie einfach
oder überprüfen Sie diesen link für die Verwendung der window-listener
JFrame Schließen
Um das Main_Menu ist, können Sie nur rufen seine entsorgen Methode:
statt
System.exit(0)
, die zu beenden der JVM zusammen.