你用的 swing 嗎?加上 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
創(chuàng)新互聯(lián)公司專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、德興網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為德興等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
或者加上窗口事件監(jiān)聽(tīng)器:
addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent we) {
dispose();
}
});
可你個(gè)例子,參考下!~
其實(shí)你說(shuō)的關(guān)閉舊窗口,就是隱藏了,使其看不見(jiàn)吧。下面給出一個(gè)例子,有問(wèn)題百度Hi我!~
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class TanChuShiJian extends JFrame implements ActionListener {
public TanChuShiJian() {
// TODO Auto-generated constructor stub
Container c = getContentPane();
c.setLayout(null);
JButton b = new JButton("測(cè)試");
b.addActionListener(this); //為按鈕添加事件
b.setBounds(10, 10, 150, 30);
c.add(b);
setSize(400, 400);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if("測(cè)試".equals(e.getActionCommand())) {
new NewFrame();
setVisible(false);
}
}
public static void main(String[] args) {
new TanChuShiJian();
}
}
class NewFrame extends JFrame {
public NewFrame() {
// TODO Auto-generated constructor stub
Container c = getContentPane();
JPanel p = new JPanel();
p.add(new JLabel("我是新窗口!"));
c.add(p);
setSize(200, 300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
根據(jù)Java的垃圾回收機(jī)制:垃圾回收回收的是無(wú)任何引用的對(duì)象占據(jù)的內(nèi)存空間
所以你只要采用匿名類創(chuàng)建打開(kāi)的窗口并調(diào)用System.gc() 或Runtime.getRuntime().gc() 就可以啦
在要?jiǎng)?chuàng)建窗口的地方這樣寫:
new frame().setVisible(true);
System.gc() ;
當(dāng)你再次打開(kāi)同樣的窗口時(shí),又會(huì)執(zhí)行new frame().setVisible();重新創(chuàng)建一個(gè)新的窗口,原來(lái)的自然就變成無(wú)任何引用的對(duì)象了,隨即就會(huì)被JVM垃圾回收機(jī)制回收掉了
注意:調(diào)用System.gc()用于顯式通知JVM可以進(jìn)行一次垃圾回收,但真正垃圾回收機(jī)制具體在什么時(shí)間點(diǎn)開(kāi)始發(fā)生動(dòng)作是不可預(yù)料的