Подтвердить что ты не робот

Как закрыть графический интерфейс, когда я нажимаю JButton

Кто-нибудь знает, как заставить jbutton закрыть gui? Я думаю, что это похоже на System.CLOSE(0);, но это не сработало. это также может быть exitActionPerformed(evt);, но это тоже не сработало. только строка кода будет работать.

EDIT: неважно, ребята. ответ был System.exit(0);. спасибо за помощь, хотя!

4b9b3361

Ответ 1

Добавьте свою кнопку:

JButton close = new JButton("Close");

Добавить ActionListener:

close.addActionListner(new CloseListener());

Добавить класс для прослушивателя, реализующий интерфейс ActionListener и переопределяющий его основную функцию:

private class CloseListener implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
        //DO SOMETHING
        System.exit(0);
    }
}

Это может быть не самый лучший способ, но его точка начала. Класс, например, можно обнародовать, а не как частный класс внутри другого.

Ответ 2

См. JFrame.setDefaultCloseOperation(DISPOSE_ON_CLOSE) 1. Вы также можете использовать EXIT_ON_CLOSE, но лучше явно очистить все запущенные потоки, а затем, когда последний элемент GUI станет невидимым, EDT и JRE закончится.

'button' для вызова этой операции уже находится в кадре.

D1JLb.png

Ответ 3

Используя System.exit(0); вы должны закрыть весь процесс. Это то, что вы хотели, или вы намеревались закрыть только окно GUI и позволить процессу продолжать работу?

Самый быстрый, самый простой и самый надежный способ просто закрыть JFrame или JPanel с помощью щелчка JButton - добавить в JButton actionListener, который будет запускать строку кода ниже при нажатии кнопки JButton:

this.dispose();

Если вы используете дизайнер GUI NetBeans, самый простой способ добавить этот ActionListener - это войти в окно редактора графического интерфейса и дважды щелкнуть компонент JButton. При этом автоматически создаются ActionListener и ActionEvent, которые могут быть изменены вручную вами.

Ответ 4

Вы можете использовать метод Window # dispose() для выпуска всех ресурсов основного ресурса, подкомпонентов и всех принадлежащих ему детей.

System.exit(0) завершает запущенную в настоящее время виртуальную машину Java.

Ответ 5

Создайте метод à и вызовите его, чтобы закрыть Jframe, например:

public void CloseJframe(){ super.dispose(); }

Ответ 6

В Java 8 вы можете использовать выражения Lambda, чтобы упростить его.

Закрыть приложение

JButton btnClose = new JButton("Close");
btnClose.addActionListener(e -> System.exit(0));

Закрыть окно

JButton btnClose = new JButton("Close");
btnClose.addActionListener(e -> this.dispose());

Ответ 7

JButton close = new JButton("Close");
close.addActionListener(this);
public void actionPerformed(ActionEvent closing) { 
// getSource() checks for the source of clicked Button , compares with the name of button in which here is close .     
if(closing.getSource()==close)
   System.exit(0);
   // This exit Your GUI 
}
/*Some Answers were asking for @override which is overriding the method the super class or the parent class and creating different objects and etc which makes the answer too long . Note : we just need to import java.awt.*; and java.swing.*; and Adding this command : class className implements actionListener{} */