web-dev-qa-db-fra.com

Fermeture de JFrame avec un clic sur le bouton

J'ai le membre privé jButton1 de JFrame et je voulais fermer le cadre lorsque le bouton est cliqué.

jButton1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
    }
});

Je voulais faire super.close() mais je n'ai pas pu trouver close pour super. Existe-t-il un moyen de se référer à JFrame

23
Mohit BAnsal

Vous aurez besoin d'une référence au cadre spécifique que vous souhaitez fermer, mais en supposant que vous avez la référence dispose() devrait fermer le cadre.

jButton1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
       frameToClose.dispose();
    }
});
37
Anton
JButton b3 = new JButton("CLOSE");

b3.setBounds(50, 375, 250, 50);

b3.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
        System.exit(0);
    }
});
12
acp

Il me semble que vous avez ici deux problèmes. La première est que JFrame n'a pas de méthode close, qui a été traitée dans les autres réponses.

L'autre est que vous rencontrez des problèmes pour référencer votre JFrame. Dans actionPerformed, super fait référence à ActionListener. Pour y faire référence à l'instance JFrame, utilisez MyExtendedJFrame.super à la place (vous devriez également pouvoir utiliser MyExtendedJFrame.this, car je ne vois aucune raison pour laquelle vous voudriez remplacer le comportement de dispose ou setVisible).

9
lins314159

Vous pouvez utiliser la méthode super.dispose () qui est plus similaire à l'opération de fermeture.

4
Shriji Infotech

Vous pouvez utiliser la méthode setVisible () de JFrame (et définir la visibilité sur false) ou dispose () méthode qui est plus similaire à l'opération close.

2
Roman