Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Закрытие JFrame нажатием кнопки

Автор вопроса: Mohit BAnsalОтветов: 4

У меня есть частный член JFrame jButton1, и я хотел закрыть фрейм при нажатии кнопки.

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

Хотел сделать super.close(), но близко к супер не нашел. Есть ли способ сослаться на JFrame

javaswing

Ответы

Ответ 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).

Ответ 3 · рейтинг 4 · Shriji Infotech

Вы можете использовать метод super.dispose (), который больше похож на операцию закрытия.

Ответ 4 · рейтинг 2 · Roman

Вы используете метод setVisible () JFrame (и установите видимость false) или метод dispose (), который больше похож на операцию close.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы