Как закрыть графический интерфейс, когда я нажимаю JButton
Кто-нибудь знает, как заставить jbutton закрыть gui? Я думаю, что это похоже на System.CLOSE(0);
, но это не сработало. это также может быть exitActionPerformed(evt);
, но это тоже не сработало. только строка кода будет работать.
EDIT: неважно, ребята. ответ был System.exit(0);
. спасибо за помощь, хотя!
Ответы
Ответ 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{} */