有谁知道如何让jbutton关闭gui?我认为这就像System.CLOSE(0);
但是没有用。它也可能是exitActionPerformed(evt);
,但这也不起作用。只需要一行代码即可。
System.exit(0);
。谢谢你的帮助!
答案 0 :(得分:19)
添加按钮:
JButton close = new JButton("Close");
添加ActionListener:
close.addActionListner(new CloseListener());
为实现ActionListener接口的Listener添加一个类并覆盖其主函数:
private class CloseListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
//DO SOMETHING
System.exit(0);
}
}
这可能不是最好的方式,但它是一个重点。例如,该类可以公开,而不是另一个类中的私有类。
答案 1 :(得分:7)
参见JFrame.setDefaultCloseOperation(DISPOSE_ON_CLOSE)
1 。您也可以使用EXIT_ON_CLOSE
,但最好明确清理任何正在运行的线程,然后当最后一个GUI元素变得不可见时,EDT& JRE将结束。
调用此操作的“按钮”已经在框架上。
DISPOSE_ON_CLOSE
功能的结构。
答案 2 :(得分:6)
使用System.exit(0);你会关闭整个过程。这是你想要的,或者你打算只关闭GUI窗口并允许进程继续运行?
通过单击JButton简单地关闭JFrame或JPanel的最快,最简单和最健壮的方法是向JButton添加一个actionListener,它将在单击JButton时执行下面的代码行:
this.dispose();
如果您使用的是NetBeans GUI设计器,添加此actionListener的最简单方法是进入GUI编辑器窗口并双击JButton组件。这样做会自动创建一个actionListener和actionEvent,可以由你手动修改。
答案 3 :(得分:3)
您可以使用Window#dispose()方法释放所有本机屏幕资源,子组件及其拥有的所有子级。
System.exit(0)
将终止当前运行的Java虚拟机。
答案 4 :(得分:3)
在Java 8中,您可以使用Lambda表达式使其更简单。
JButton btnClose = new JButton("Close");
btnClose.addActionListener(e -> System.exit(0));
JButton btnClose = new JButton("Close");
btnClose.addActionListener(e -> this.dispose());
答案 5 :(得分:2)
创建一个方法并调用它来关闭JFrame,例如:
public void CloseJframe(){
super.dispose();
}
答案 6 :(得分:0)
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{} */