Est-ce que quelqu'un sait comment faire un jbutton fermer une interface graphique? Je pense que c'est comme System.CLOSE(0);
mais cela n'a pas fonctionné. il pourrait également s'agir de exitActionPerformed(evt);
, mais cela n'a pas fonctionné non plus. seule la ligne de code fonctionnera.
EDIT: peu importe les gars. la réponse était System.exit(0);
. Merci pour l'aide en tout cas!
Ajoutez votre bouton:
JButton close = new JButton("Close");
Ajouter un ActionListener:
close.addActionListner(new CloseListener());
Ajoutez une classe pour le Listener implémentant l'interface ActionListener et remplacez sa fonction principale:
private class CloseListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
//DO SOMETHING
System.exit(0);
}
}
Ce n'est peut-être pas la meilleure solution, mais c'est un point de départ. La classe par exemple peut être rendue publique et non pas en tant que classe privée dans une autre classe.
Voir JFrame.setDefaultCloseOperation(DISPOSE_ON_CLOSE)
1. Vous pouvez également utiliser EXIT_ON_CLOSE
, mais il est préférable de nettoyer explicitement les threads en cours d'exécution. Lorsque le dernier élément de l'interface graphique devient invisible, EDT & JRE se termine.
Le 'bouton' pour invoquer cette opération est déjà sur un cadre.
DISPOSE_ON_CLOSE
.En utilisant System.exit (0); vous fermeriez le processus entier. Est-ce ce que vous souhaitiez ou aviez-vous l'intention de fermer uniquement la fenêtre de l'interface graphique et de permettre au processus de continuer à s'exécuter?
Le moyen le plus rapide, le plus simple et le plus robuste de fermer simplement un JFrame ou JPanel avec le clic d'un JButton consiste à ajouter un actionListener au JButton qui exécutera la ligne de code ci-dessous lorsque l'utilisateur cliquera sur le JButton:
this.dispose();
Si vous utilisez le concepteur d'interface graphique NetBeans, le moyen le plus simple d'ajouter cette actionListener consiste à entrer dans la fenêtre de l'éditeur d'interface graphique et à double-cliquer sur le composant JButton. Cela créera automatiquement actionListener et actionEvent, que vous pourrez modifier manuellement.
Vous pouvez utiliser Window # dispose () method pour libérer toutes les ressources d’écran natif, les sous-composants et tous ses enfants.
System.exit(0)
mettra fin à la machine virtuelle Java en cours d'exécution.
En Java 8, vous pouvez utiliser des expressions Lambda pour simplifier les choses.
JButton btnClose = new JButton("Close");
btnClose.addActionListener(e -> System.exit(0));
JButton btnClose = new JButton("Close");
btnClose.addActionListener(e -> this.dispose());
Créez une méthode et appelez-la pour fermer le JFrame, par exemple:
public void CloseJframe(){
super.dispose();
}
JButton close = new JButton("Close");
close.addActionListener(this);
public void actionPerformed(ActionEvent closing) {
// getSource() checks for the source of clicked Button , compares with the name of button in which here is close .
if(closing.getSource()==close)
System.exit(0);
// This exit Your GUI
}
/*Some Answers were asking for @override which is overriding the method the super class or the parent class and creating different objects and etc which makes the answer too long . Note : we just need to import Java.awt.*; and Java.swing.*; and Adding this command : class className implements actionListener{} */