【发布时间】:2016-11-08 10:46:24
【问题描述】:
当用户注销或登录计算机时,我试图将时间存储到数据库中,但是当我注销计算机时,它不会将我当前的时间存储到数据库中,如果我按下 ctrl+c在控制台上或从 NETBEANS 终止程序,它也存储注销时间。我在哪里做错了?这个你能帮我吗。下面是我的代码。提前谢谢你。
public void logoutTime() throws Exception {
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override
public void run() {
SimpleDateFormat sdf1 = new SimpleDateFormat("HH:mm:ss");
String time = String.format(sdf1.format(calendar.getTime()));
Globals.globalClockBean.setLogout_time(time);
try {
cd.insert(Globals.globalClockBean);
} catch (Exception ex) {
Logger.getLogger(ClockController.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("Closing: Logged out at yayyyyyyyyy: " + time);
System.out.println(sdf1.format(calendar.getTime()));
}
}));
【问题讨论】:
-
你是否在某处显式调用了 logoutTime() 方法?
-
是的,我这样做了...
if (hashedPassword.equals(pass)) { System.out.println("You are logged in as " + loginUsername); ClockView cv = new ClockView(); cv.loginTime(); cv.logoutTime(); cv.timerStart(); cv.stopTimer(); cv.elapsedTime(); } else { System.out.println("Incorrect Password. Try agian"); }
标签: java jvm hook shutdown-hook system-shutdown