[英]JMenuItem exit doesn't exit
我有简单的Java GUI ,单击“文件”菜单上的JMenuItem“退出”不会退出GUI。 我想在用户关闭GUI之前设置“确认警告窗口”。 到目前为止,我已经尝试过,请给我指示; 谢谢。
编码:
private void initialize() {
frmScms = new JFrame();
frmScms.setTitle("SCMS");
frmScms.setBounds(100, 100, 1080, 684);
frmScms.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmScms.getContentPane().setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBounds(0, 0, 1064, 21);
frmScms.getContentPane().add(menuBar);
JMenu menuF = new JMenu("File");
menuF.add("New");
menuF.add("Open");
menuF.add("Save");
JMenuItem exit = new JMenuItem("Exit");
menuF.add(exit);
JMenu menuS = new JMenu("Edit");
menuS.add("Cut");
menuS.add("Copy");
menuS.add("Paste");
menuS.add("Delete");
JMenu menuT = new JMenu("Help");
menuT.add("Help Contents");
menuT.add("Search");
menuT.add("About SCMS");
menuBar.add(menuF);
menuBar.add(menuS);
menuBar.add(menuT);
class exitAction implements ActionListener{
public void actionPerformed (ActionEvent e){
int result = JOptionPane.showConfirmDialog(frmScms, "Are you sure you want to close the application?", "Please Confirm-?",JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.YES_OPTION)
frmScms.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
exit.addActionListener(new exitAction());
}
另一方面; 它下面的代码关闭GUI。
class exitAction implements ActionListener{
public void actionPerformed (ActionEvent e){
System.exit(0);
}
}
exit.addActionListener(new exitAction());
当使用setDefaultCloseOperation
,仅当用户单击窗口顶部的叉号时,程序才会退出。 这是因为setDefaultCloseOperation()
只是告诉程序用户尝试退出时该怎么做。 另一方面, System.exit(0)
强制程序随后退出。 因此,如果要关闭程序,请使用System.exit(0);
干杯。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.