Bonjour J'écris une sorte de Menu pour un programme de cryptage que j'écris. J'ai fini le noyau de celui-ci, et maintenant je veux essayer de créer une interface graphique pour cela. Voici le code pour le premier menu:Fermer un JFrame après avoir cliqué sur un bouton Java
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 Démarrer est cliqué, le nouveau menu revient tout beau et bon, mais le premier menu reste ouvert. Y at-il un moyen de fermer ce premier menu ET ouvrir le second menu avec le premier bouton cliquez? 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? Merci
S'il vous plaît vérifier: [l'utilisation-de-multiples-JFrames-bon-mauvais -practice] (http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-bad-practice) –
'System.exit (0);' provoquera la fermeture de la JVM. – Maroun
1) Ne pas étendre le cadre ou d'autres conteneurs de niveau supérieur. Au lieu de créer et utiliser une instance de un. 2) Ne pas définir la taille des conteneurs de niveau supérieur. Mettez plutôt le contenu en page et appelez 'pack()'. –