用窗口上的叉子关闭程序,是等于执行了哪个方法。我想在单击叉子之后还能执行向数据库写入时间的代码。如记录用户退出时间应该怎么办
------解决方案--------------------
Window类添加侦听器,Window有windowClosing方法,窗口正处在关闭过程中时调用。此时可重写关闭操作。点击那个叉叉,就会执行windowClosing方法,这里就对方法进行重写System.exit(0);安全退出。
代码参照如下:
window.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
------解决方案--------------------
- Java code
public class MainFrame extends JFrame { JPanel contentPane; JMenuBar jMenuBar1 = new JMenuBar(); JMenu jMenuUserManage = new JMenu(); JMenuItem jMenuItemUserNew = new JMenuItem(); JMenuItem jMenuItemUserPassword = new JMenuItem(); JMenuItem jMenuItemUserMessage = new JMenuItem(); JMenuItem jMenuItemLog = new JMenuItem(); JMenuItem jMenuItemExit = new JMenuItem(); JMenu jMenuAssetManage = new JMenu(); JMenuItem jMenuItemMessageRejigger = new JMenuItem(); JMenuItem jMenuItemStyleManage = new JMenuItem(); JMenu jMenuBorrowMessage = new JMenu(); JMenuItem jMenuItemShowMessage = new JMenuItem(); JMenuItem jMenuItemPersonnelMessage = new JMenuItem(); JMenu jMenuHelp = new JMenu(); JMenuItem jMenuItemHelpDocument = new JMenuItem(); JMenuItem jMenuItemAboutUs = new JMenuItem(); public MainFrame() { try { setDefaultCloseOperation(EXIT_ON_CLOSE); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.out.println("测试"); } }); jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } /** * Component initialization. * * @throws java.lang.Exception */ private void jbInit() throws Exception { contentPane = (JPanel) getContentPane(); contentPane.setLayout(null); this.setJMenuBar(jMenuBar1); setSize(new Dimension(800, 600)); setTitle("固定资产管理系统"); jMenuUserManage.setText("用户管理"); jMenuItemUserNew.setText("新建用户"); jMenuItemUserPassword.setText("密码修改"); jMenuItemUserMessage.setActionCommand("用户信息"); jMenuItemUserMessage.setText("用户信息"); jMenuItemLog.setText("登陆日志"); jMenuItemExit.setText("注销用户"); jMenuAssetManage.setText("资产管理"); jMenuItemMessageRejigger.setText("信息更改"); jMenuItemStyleManage.setText("类别管理"); jMenuBorrowMessage.setText("领用信息"); jMenuItemPersonnelMessage.setText("人员信息"); jMenuHelp.setText("帮助"); jMenuItemHelpDocument.setText("帮助文档"); jMenuItemAboutUs.setText("关于"); jMenuItemShowMessage.setText("资产信息"); jMenuBar1.add(jMenuUserManage); jMenuBar1.add(jMenuAssetManage); jMenuBar1.add(jMenuBorrowMessage); jMenuBar1.add(jMenuHelp); jMenuUserManage.add(jMenuItemUserNew); jMenuUserManage.add(jMenuItemUserPassword); jMenuUserManage.add(jMenuItemUserMessage); jMenuUserManage.add(jMenuItemLog); jMenuUserManage.add(jMenuItemExit); jMenuAssetManage.add(jMenuItemMessageRejigger); jMenuAssetManage.add(jMenuItemStyleManage); jMenuBorrowMessage.add(jMenuItemShowMessage); jMenuBorrowMessage.add(jMenuItemPersonnelMessage); jMenuHelp.add(jMenuItemHelpDocument); jMenuHelp.add(jMenuItemAboutUs); } public static void main(String[] args){ MainFrame f=new MainFrame(); f.setVisible(true); }}