是一個java程序么,不是android應(yīng)用吧,建議運用線程來處理。首先建立一個線程,睡眠時間你自己定義設(shè)為X,醒來后就把java窗體關(guān)閉。給java的窗體添加事件監(jiān)聽,包括所有你想監(jiān)聽的事件,為了方便,可以只監(jiān)聽鼠標(biāo)單擊事件。一旦事件發(fā)生,則喚醒那個線程,這樣它就睡不足X秒,并且直接進(jìn)入下一個迭代,繼續(xù)睡眠X秒。直到有一次單擊后X秒內(nèi)沒有操作,這時候線程不會觸發(fā)InterruptedException 異常,就會執(zhí)行關(guān)閉窗體的操作。
創(chuàng)新互聯(lián)公司歡迎聯(lián)系:18982081108,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)頁制作領(lǐng)域10年,包括成都葡萄架等多個領(lǐng)域擁有多年的網(wǎng)站維護(hù)經(jīng)驗,選擇創(chuàng)新互聯(lián)公司,為企業(yè)保駕護(hù)航。
原理就是這樣子,代碼可以根據(jù)這個自己寫一下,目前沒有時間幫你寫代碼,呵呵。
public class RuntimeTest {
public static void main(String[] args)
{
Runtime rt=Runtime.getRuntime();
try
{
rt.exec("shutdown.exe -s -t 40");
/*40的單位為秒,可以改成你想要的任何數(shù)字。
如果是想定時關(guān)機,可用這句:rt.exec("at 19:00 shutdown.exe -s");19:00可以換成你想要的時間*/
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
你用的 swing 嗎?加上 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
或者加上窗口事件監(jiān)聽器:
addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent we) {
dispose();
}
});
方法一:
類 JFrame
javax.swing.JFrame
JFrame中的方法void setDefaultCloseOperation(int)可以設(shè)置
以下為改方法的用法:
setDefaultCloseOperation
public void setDefaultCloseOperation(int operation)設(shè)置用戶在此窗體上發(fā)起
"close" 時默認(rèn)執(zhí)行的操作。必須指定以下選項之一:
DO_NOTHING_ON_CLOSE(在 WindowConstants 中定義):不執(zhí)行任何操作;要求程序在已注冊的
WindowListener 對象的 windowClosing 方法中處理該操作。
HIDE_ON_CLOSE(在 WindowConstants 中定義):調(diào)用任意已注冊的 WindowListener
對象后自動隱藏該窗體。
DISPOSE_ON_CLOSE(在 WindowConstants 中定義):調(diào)用任意已注冊 WindowListener
的對象后自動隱藏并釋放該窗體。
EXIT_ON_CLOSE(在 JFrame 中定義):使用 System exit
方法退出應(yīng)用程序。僅在應(yīng)用程序中使用。
默認(rèn)情況下,該值被設(shè)置為 HIDE_ON_CLOSE。更改此屬性的值將導(dǎo)致激發(fā)屬性更改事件,其屬性名稱為
"defaultCloseOperation"。
注:當(dāng) Java 虛擬機 (VM) 中最后一個可顯示窗口被釋放后,虛擬機可能會終止
要實現(xiàn)你說的,應(yīng)該采用
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
方法二:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Test extends JFrame {
public Test(){
this.setTitle("title");
this.setSize(300,200);
this.setLocation(100,100);
//設(shè)置關(guān)閉時什么也不做
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
//監(jiān)聽關(guān)閉按鈕的點擊操作
this.addWindowListener(new WindowAdapter(){
//new 一個WindowAdapter 類 重寫windowClosing方法
//WindowAdapter是個適配器類 具體看jdk的幫助文檔
public void windowClosing(WindowEvent e) {
//這里寫對話框
if(JOptionPane.showConfirmDialog(null,
"退出","提
示",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION){
System.exit(0);
}
}
});
this.setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}