import?java.applet.*;
十年的新野網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整新野建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“新野網(wǎng)站設(shè)計(jì)”,“新野網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
import?java.awt.Color;
import?java.awt.Frame;
import?javax.swing.JFrame;
import?java.awt.event.*;
public?class?FirstFrame?extends?Frame?{
public?static?void?main(String?args[])?{
FirstFrame?fr?=?new?FirstFrame("First?contianer!");
fr.setSize(240,?240);
//繼承JFrame的關(guān)閉窗口代碼
//fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//繼承Frame的
fr.addWindowListener(new?WindowAdapter()?{????
public?void?windowClosing(WindowEvent?e)?{????????
System.exit(0);//退出系統(tǒng)???
}
});
fr.setVisible(true);
}
public?FirstFrame(String?str)?{
super(str);
}
}
解決這個(gè)問題,要看這個(gè)進(jìn)程是java程序自定義的進(jìn)程,還是操作系統(tǒng)的進(jìn)程,操作系統(tǒng)的進(jìn)程,又可以分為windows進(jìn)程和Linux進(jìn)程
一、針對(duì)操作系統(tǒng)的進(jìn)程:
1,首先java用戶,要具有操作進(jìn)程的權(quán)限
2. 針對(duì)windows操作系統(tǒng)的進(jìn)程,比如QQ進(jìn)程:
String?command?=?"taskkill?/f?/im?QQ.exe";??
Runtime.getRuntime().exec(command);
其中:taskkill 是命令名稱,/f /im 是參數(shù),QQ.exe是進(jìn)程的可執(zhí)行文件。
3.針對(duì)Linux操作系統(tǒng)
String?command?=?"kill?/f?/im?QQ.exe";??
Runtime.getRuntime().exec(command);
二、在Java程序中自定義的進(jìn)程
思路:在線程中設(shè)置一個(gè)標(biāo)志變量,當(dāng)這個(gè)變量的值在外界被改變的時(shí)候,有機(jī)會(huì)結(jié)束運(yùn)行的線程
public?class?T?{
public?static?void?main(String[]?args)?{
//?啟動(dòng)線程
MyThread?thread?=?new?MyThread();
new?Thread(thread).start();
//?你的其它的工作,此時(shí)線程在運(yùn)行中
//?你不想讓線程干活了,停掉它
//?注意,這只是一個(gè)標(biāo)志,具體線程何時(shí)停,并不能精確控制
thread.allDone?=?true;
}
}?
class?MyThread?implements?Runnable?{
boolean?volatile?allDone?=?false;
public?void?run()?{
//?每次循環(huán)都檢測(cè)標(biāo)志
//?如果設(shè)置停止標(biāo)志時(shí)已經(jīng)在循環(huán)里
//?則最長(zhǎng)需要等待一個(gè)循環(huán)的時(shí)間才能終止
while?(!allDone)?{
//?循環(huán)里的工作
}
}
}
電腦JAVA更新程序永久關(guān)閉的方法如下
首先打開計(jì)算機(jī)的控制面板,“開始”-“控制面板”,如下圖所示:
進(jìn)入控制面板之后,選擇“Java”并進(jìn)入,如下圖所示:
進(jìn)入“Java控制面板”之后,點(diǎn)擊更新,然后取消勾選“自動(dòng)檢查更新”,在接下來彈出的對(duì)話框中選擇“不檢查”。如下圖所示:
然后再點(diǎn)擊“高級(jí)”,并在應(yīng)用程序一欄中選擇“從不安裝”,如下圖所示:
經(jīng)過以上操作之后,Java更新程序即可永久關(guān)閉了。
關(guān)閉java frame進(jìn)程的方法是調(diào)用關(guān)閉的時(shí)候執(zhí)行以下代碼:
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
關(guān)于EXIT_ON_CLOSE的說明:
EXIT_ON_CLOSE(在 JFrame 中定義):使用 System exit 方法退出應(yīng)用程序。僅在應(yīng)用程序中使用。
public void exit(int status)通過啟動(dòng)虛擬機(jī)的關(guān)閉序列,終止當(dāng)前正在運(yùn)行的 Java 虛擬機(jī)。此方法從不正常返回。可以將變量作為一個(gè)狀態(tài)碼;根據(jù)慣例,非零的狀態(tài)碼表示非正常終止。?
虛擬機(jī)的關(guān)閉序列包含兩個(gè)階段。
在第一個(gè)階段中,會(huì)以某種未指定的順序啟動(dòng)所有已注冊(cè)的關(guān)閉掛鉤(如果有的話),并且允許它們同時(shí)運(yùn)行直至結(jié)束。
在第二個(gè)階段中,如果已啟用退出終結(jié),則運(yùn)行所有未調(diào)用的終結(jié)方法。一旦完成這個(gè)階段,虛擬機(jī)就會(huì)暫停。
? 如果在虛擬機(jī)已開始其關(guān)閉序列后才調(diào)用此方法,那么若正在運(yùn)行關(guān)閉掛鉤,則將無限期地阻斷此方法。如果已經(jīng)運(yùn)行完關(guān)閉掛鉤,并且已啟用退出終結(jié) (on-exit finalization),那么此方法將利用給定的狀態(tài)碼(如果狀態(tài)碼是非零值)暫停虛擬機(jī);否則將無限期地阻斷虛擬機(jī)。?
System.exit 方法是調(diào)用此方法的一種傳統(tǒng)而便捷的方式。
我詳細(xì)說一下吧
java程序啟動(dòng)之后,JVM(java虛擬機(jī))會(huì)實(shí)例化一個(gè)Runtime類,這是一個(gè)運(yùn)行時(shí)類實(shí)例,包含這個(gè)java程序運(yùn)行的所有信息,一個(gè)程序會(huì)實(shí)例化一個(gè)Runtime類且只能實(shí)例化一個(gè)Runtime類。我們可以通過這個(gè)Runtime類實(shí)例操作程序的運(yùn)行。它的exit(int status)方法會(huì)終止程序的運(yùn)行。例:
Runtime.getRuntime().exit(0);
其中參數(shù)status表示狀態(tài),0表示正常退出,非0表示異常退出。非0參數(shù)有什么用呢?
addShutdownHook(Thread hook)方法可以將一個(gè)Thread可程序的關(guān)閉hook(掛/聯(lián)系)起來,程序退出前,會(huì)執(zhí)行這個(gè)方法,這樣我們可以根據(jù)退出狀態(tài)作相應(yīng)的善后操作。
另外,System.exit(int status)也是調(diào)用這個(gè)Runtime類實(shí)例的退出方法來間接實(shí)現(xiàn)程序的退出的。
再加一點(diǎn),Runtime類可以創(chuàng)建子進(jìn)程,如下:
Process p=Runtime.getRuntime().exec("notepad");
這個(gè)語句將會(huì)創(chuàng)建一個(gè)記事本程序(它是Runtime類創(chuàng)建的子進(jìn)程)
p.destroy();
這個(gè)語句終止剛才創(chuàng)建的子進(jìn)程。
方法一:
類 JFrame
javax.swing.JFrame
JFrame中的方法void setDefaultCloseOperation(int)可以設(shè)置
以下為改方法的用法:
setDefaultCloseOperation
public void setDefaultCloseOperation(int operation)設(shè)置用戶在此窗體上發(fā)起
"close" 時(shí)默認(rèn)執(zhí)行的操作。必須指定以下選項(xiàng)之一:
DO_NOTHING_ON_CLOSE(在 WindowConstants 中定義):不執(zhí)行任何操作;要求程序在已注冊(cè)的
WindowListener 對(duì)象的 windowClosing 方法中處理該操作。
HIDE_ON_CLOSE(在 WindowConstants 中定義):調(diào)用任意已注冊(cè)的 WindowListener
對(duì)象后自動(dòng)隱藏該窗體。
DISPOSE_ON_CLOSE(在 WindowConstants 中定義):調(diào)用任意已注冊(cè) WindowListener
的對(duì)象后自動(dòng)隱藏并釋放該窗體。
EXIT_ON_CLOSE(在 JFrame 中定義):使用 System exit
方法退出應(yīng)用程序。僅在應(yīng)用程序中使用。
默認(rèn)情況下,該值被設(shè)置為 HIDE_ON_CLOSE。更改此屬性的值將導(dǎo)致激發(fā)屬性更改事件,其屬性名稱為
"defaultCloseOperation"。
注:當(dāng) Java 虛擬機(jī) (VM) 中最后一個(gè)可顯示窗口被釋放后,虛擬機(jī)可能會(huì)終止
要實(shí)現(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)閉時(shí)什么也不做
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
//監(jiān)聽關(guān)閉按鈕的點(diǎn)擊操作
this.addWindowListener(new WindowAdapter(){
//new 一個(gè)WindowAdapter 類 重寫windowClosing方法
//WindowAdapter是個(gè)適配器類 具體看jdk的幫助文檔
public void windowClosing(WindowEvent e) {
//這里寫對(duì)話框
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();
}
}