La fermeture d'une JFrame après on clique sur un bouton Java
Bonjour, je suis en train d'écrire une sorte de Menu pour un programme de cryptage que j'écris. J'ai terminé l'essentiel, et maintenant je veux essayer de créer une interface graphique pour elle. Voici le code pour le premier Menu:
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);
}
}
}
Lorsque le Bouton de Démarrage est cliqué, le nouveau menu apparaît tout à bel et bon, mais le premier menu reste ouvert. Est-il un moyen de fermer ce premier menu ET ouvrir le menu avec la première cliquez sur le bouton? Je suis très nouveau à l'interface graphique, donc la solution la plus simple serait très utile. Sur une note de côté, est-il un moyen simple de déplacer le bouton Démarrer à la ligne suivante? Grâce
- S'il vous plaît vérifier: the-use-of-multiple-jframes-good-bad-practice
System.exit(0);
Sera la cause de la JVM pour terminer.- 1) Ne pas prolonger cadre ou de haut niveau d'autres conteneurs. Au lieu de créer des & utiliser une instance de l'un. 2) Ne pas définir la taille de haut niveau dans des conteneurs. Au lieu de mise en page le contenu & appel
pack()
. System.exit(0);
causes de résilier, mais il se termine sans poursuivre le menu suivant. Sauf si je mets cela dans le mauvais endroit, cela ne fonctionnera pas.
Vous devez vous connecter pour publier un commentaire.
Vous avez 2 options: vous pouvez utiliser une Fenêtre de l'Auditeur, ou vous pouvez utiliser la méthode dispose (). Faire l'dispose (), tapez simplement
ou vérifier ce lien pour l'utilisation de la fenêtre de l'auditeur
Fermeture JFrame
Afin de fermer la Main_Menu, vous pouvez les appeler son disposer méthode:
au lieu de l'appeler
System.exit(0)
, qui mettra fin à la JVM tout à fait.