28 votes

Fermeture de JFrame par un clic sur un 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 de proximité pour le super. Existe-t-il un moyen de faire référence à la JFrame

43voto

Anton Points 3522

Vous aurez besoin d'une référence au cadre spécifique que vous voulez 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();
    }
});

16voto

acp Points 21
JButton b3 = new JButton("CLOSE");

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

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

9voto

lins314159 Points 2177

Il me semble que vous avez deux problèmes ici. L'un est que JFrame n'a pas de fonction close qui a été abordé dans les autres réponses.

L'autre problème est que vous avez du mal à référencer votre JFrame. Dans actionPerformed , super fait référence à ActionListener. Pour faire référence à l'instance de JFrame à cet endroit, utilisez MyExtendedJFrame.super à la place (vous devriez également être en mesure d'utiliser MyExtendedJFrame.this car je ne vois pas pourquoi vous voudriez modifier le comportement de l'option dispose ou setVisible ).

4voto

Shriji Infotech Points 21

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

2voto

Roman Points 21807

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X