用窗口上的叉子关闭程序,是等于执行了哪个方法。我想在单击叉子之后还能执行向数据库写入时间的代码。如记录用户退出时间应该怎么办 用窗口上的叉子关闭程序,是等于执行了哪个方法。我想在单击叉子之后还能执行向数据库写入时间的代码。如记录用户退出时间应该怎么办 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Window类添加侦听器,Window有windowClosing方法,窗口正处在关闭过程中时调用。此时可重写关闭操作。点击那个叉叉,就会执行windowClosing方法,这里就对方法进行重写System.exit(0);安全退出。代码参照如下:window.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); }}); 同上在System.exit(0)之前执行写入就可以了 window.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });这个用来关闭窗口如果要在关闭窗口之后还想向数据库中写入数据,这个写入数据的操作可以放在另一个线程里来做 你必须在关闭之前执行在System.exit(0); 之前,你可以给用户制造假象比如隐藏窗口,待做完log后System.exit(0); 会进行关闭。 enableEvents(AWTEvent.WINDOW_EVENT_MASK); 感觉fsolsh说的是我想要的但是我没有学到那里呢。。我要关闭我的主面板。然后记录退出时间。然后退出那么应该在主面板的哪里添加你说的代码。你的意思是把我想写的代码加在public void windowClosing(WindowEvent e){}方法中吧? 另外还可以: public static void main(String[] args) { Runtime.getRuntime().addShutdownHook( new Thread( new Runnable() { public void run() { //你要做的操作 } } ) ); //main方法中的其它代码}//你要做的操作 此处的代码会在你的程序退出之前执行(多少个窗口的程序以哪种方式退出(System.exit(0)或自然退出)都可以使用此方法)。 我直接加上去不行的报错说class or interface expected应该是我学的知识有限。我的源码如下谁能细致的告诉我一下。我把window.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });加到了程序的最后package asset_manage;导入省略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); 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("新建用户"); jMenuItemUserNew.addActionListener(new mainFrame_jMenuItemUserNew_actionAdapter(this)); jMenuItemUserPassword.setText("密码修改"); jMenuItemUserPassword.addActionListener(new mainFrame_jMenuItemUserPassword_actionAdapter(this)); jMenuItemUserMessage.setActionCommand("用户信息"); jMenuItemUserMessage.setText("用户信息"); jMenuItemUserMessage.addActionListener(new mainFrame_jMenuItemUserMessage_actionAdapter(this)); jMenuItemLog.setText("登陆日志"); jMenuItemLog.addActionListener(new mainFrame_jMenuItemLog_actionAdapter(this)); jMenuItemExit.setText("注销用户"); jMenuItemExit.addActionListener(new mainFrame_jMenuItemExit_actionAdapter(this)); 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); } 其他事件内容省略。。 this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { //your codeSystem.exit(0); } }); 放到jbInit() 方法中 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); }} private void addListener() { this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } 把方法写在System.exit(0);前面就OK了 菜鸟求助 有关jframe焦点的问题!!!!!!!高手请进!! String比较的问题 学JAVA的兄弟姐妹请进 子类对象调用覆盖的方法? 有没有把sqlj翻译成用jdbc和sql的java程序的工具呢? 请教高手!怎么读取网页里面的iframe 和javascript输出代码? 急!救命!!!!! 谁有VisualCafe的光盘啊? 提议发挥精华版的作用 利用多线程怎么编写存款与取款的问题? 关于msn机器人SDK
代码参照如下:
window.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
在System.exit(0)之前执行写入就可以了
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});这个用来关闭窗口如果要在关闭窗口之后还想向数据库中写入数据,这个写入数据的操作可以放在另一个线程里来做
Runtime.getRuntime().addShutdownHook(
new Thread(
new Runnable() {
public void run() {
//你要做的操作
}
}
)
);
//main方法中的其它代码
}//你要做的操作 此处的代码会在你的程序退出之前执行(多少个窗口的程序以哪种方式退出(System.exit(0)或自然退出)都可以使用此方法)。
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
加到了程序的最后
package asset_manage;导入省略
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);
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("新建用户");
jMenuItemUserNew.addActionListener(new
mainFrame_jMenuItemUserNew_actionAdapter(this));
jMenuItemUserPassword.setText("密码修改");
jMenuItemUserPassword.addActionListener(new
mainFrame_jMenuItemUserPassword_actionAdapter(this));
jMenuItemUserMessage.setActionCommand("用户信息");
jMenuItemUserMessage.setText("用户信息");
jMenuItemUserMessage.addActionListener(new
mainFrame_jMenuItemUserMessage_actionAdapter(this));
jMenuItemLog.setText("登陆日志");
jMenuItemLog.addActionListener(new mainFrame_jMenuItemLog_actionAdapter(this));
jMenuItemExit.setText("注销用户");
jMenuItemExit.addActionListener(new
mainFrame_jMenuItemExit_actionAdapter(this));
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 void windowClosing(WindowEvent e) { //your codeSystem.exit(0);
}
}); 放到jbInit() 方法中
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);
}
}
private void addListener() {
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}