方法一:

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)四平,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
類 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)你說(shuō)的,應(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();
}
}
分享
如果 in == null,就說(shuō)明 in這個(gè)引用所指向的對(duì)象還沒(méi)有被創(chuàng)建,自然 in.close()也就不可能被執(zhí)行,而且會(huì)報(bào)異常。我是這樣想的,程序中 如果你先聲明變量
InputStream(或者其他流類型) in = null;
然后執(zhí)行其他語(yǔ)句,再 in = new 、、、、
在in new之前其他語(yǔ)句出exception,這時(shí)流沒(méi)有被打開,也就無(wú)需關(guān)閉,如果不判斷if(null != in) 硬要關(guān)閉in就出exception
另外你的代碼按如下寫會(huì)更合理:
if(null != in){
try{
in.flush();
in.close();
in = null;
}
catch(IOExection e){};
}
是的,你的new FileReader(file)是一個(gè)匿名對(duì)象。
JVM中對(duì)于那些打開了沒(méi)有關(guān)閉的IO文件流,會(huì)在不再被使用的情況下,等到下次做Full GC的時(shí)候把他們?nèi)炕厥眨M量少使用這種寫法。文章來(lái)自:
代碼如下:
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.IOException;
public?class?App?{
public?static?void?main(String[]?args)?throws?IOException?{
//?第一種方式,稍嫌麻煩
FileOutputStream?outputStream?=?null;
try?{
outputStream?=?new?FileOutputStream(new?File("data.txt"));
outputStream.write(new?byte[]?{?0x11,?0x22,?0x33,?0x44?});
//?在這里可以直接?return,?會(huì)調(diào)用?finally?中的代碼
}?finally?{
if?(outputStream?!=?null)?{
try?{
outputStream.close();
}?catch?(IOException?e)?{
}
}
}
//?第二種方式,比較簡(jiǎn)潔,不用顯式調(diào)用?close(),?會(huì)自動(dòng)調(diào)用?close();
try?(FileInputStream?inputStream?=?new?FileInputStream(new?File("data.dat")))?{
byte[]?buf?=?new?byte[4];
inputStream.read(buf);
//?可以在這里調(diào)用?return?,在這個(gè){}代碼塊結(jié)束時(shí),close?會(huì)自動(dòng)執(zhí)行,
}
}
}
分享題目:java流關(guān)閉詳細(xì)代碼,java關(guān)閉流的方法
鏈接URL:http://chinadenli.net/article49/dseeohh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、品牌網(wǎng)站制作、建站公司、網(wǎng)頁(yè)設(shè)計(jì)公司、Google、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)