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
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();
}
});
JButton b3 = new JButton("CLOSE");
b3.setBounds(50, 375, 250, 50);
b3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
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
).
Vous pouvez utiliser la méthode super.dispose () qui est plus similaire à l'opération de fermeture.
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
.