方法一:
網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。創(chuàng)新互聯(lián)建站多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營(yíng)建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián)建站,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。
類 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();
}
}
package tes;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class AFrame extends JFrame implements ActionListener{
private JButton button;
private JPanel panel;
public void initFrame(String message,int x,int y,int z,int g){
setBounds(x,y,z,g);
setTitle(message);
button=new JButton("打開");
panel=new JPanel();
button.addActionListener(this);
panel.add(button);
add(panel);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(button)) {
new AFrame().initFrame("第二個(gè)窗口!",200,200,200,200);
}
}
public static void main(String[] args) {
new AFrame().initFrame("第一個(gè)窗口!",300,300,300,300);
}
}
代碼雖然簡(jiǎn)單,但是可以回答你的問題了,自己運(yùn)行一下試試。
如果這個(gè)窗體是JFrame或JDialog,那就在構(gòu)造方法里寫
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
如果是Frame或Dialog,那就在WindowListener的windowClosing(WindowEvent)方法里寫
this.dispose();
兩句話的意思是窗體關(guān)閉時(shí)釋放自身,,,而不是退出,不要設(shè)成EXIT_ON_CLOSE或System.exit(0);,那樣的話窗體關(guān)閉會(huì)導(dǎo)致整個(gè)程序退出。