У меня есть частный член JFrame jButton1, и я хотел закрыть фрейм при нажатии кнопки.
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
}
});
Хотел сделать super.close(), но близко к супер не нашел. Есть ли способ сослаться на JFrame
Ответ 1 · рейтинг 43 · Anton
Вам понадобится ссылка на конкретный фрейм, который вы хотите закрыть, но при условии, что у вас есть ссылка, dispose() должна закрыть фрейм.
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
frameToClose.dispose();
}
});
Ответ 2 · рейтинг 9 · lins314159
Мне кажется, у вас здесь две проблемы. Во-первых, JFrame не имеет метода close, который был рассмотрен в других ответах.
Во-вторых, у вас возникли проблемы со ссылкой на JFrame. Внутри actionPerformed super относится к ActionListener. Чтобы сослаться на экземпляр JFrame там, используйте вместо этого MyExtendedJFrame.super (вы также должны иметь возможность использовать MyExtendedJFrame.this, поскольку я не вижу причин, по которым вы хотите переопределить поведение dispose или setVisible).