当前位置: 代码迷 >> J2SE >> 用窗口上的叉子关闭程序,是等于执行了哪个方法。我想在单击叉子之后还能执行向数据库写入时间的代码。如记录用户退出时间应该如何办
  详细解决方案

用窗口上的叉子关闭程序,是等于执行了哪个方法。我想在单击叉子之后还能执行向数据库写入时间的代码。如记录用户退出时间应该如何办

热度:91   发布时间:2016-04-24 13:01:23.0
用窗口上的叉子关闭程序,是等于执行了哪个方法。我想在单击叉子之后还能执行向数据库写入时间的代码。如记录用户退出时间应该怎么办
用窗口上的叉子关闭程序,是等于执行了哪个方法。我想在单击叉子之后还能执行向数据库写入时间的代码。如记录用户退出时间应该怎么办

------解决方案--------------------
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);    }}