① java怎麼使一個JFrame面板關掉,而不是隱藏
如果你不想用exit(0)的話dispose()就可以,dispose()不是隱藏,而是將那個資源釋放掉,又不會關閉整個程序
② java中如何關閉一個窗口就完全釋放它所佔的資源但不終止整個程序(程序由多個窗口)
根據Java的垃圾回收機制:垃圾回收回收的是無任何引用的對象占據的內存空間
所以內你只要採用匿名類創建打開容的窗口並調用System.gc() 或Runtime.getRuntime().gc() 就可以啦
在要創建窗口的地方這樣寫:
new frame().setVisible(true);
System.gc() ;
當你再次打開同樣的窗口時,又會執行new frame().setVisible();重新創建一個新的窗口,原來的自然就變成無任何引用的對象了,隨即就會被JVM垃圾回收機制回收掉了
注意:調用System.gc()用於顯式通知JVM可以進行一次垃圾回收,但真正垃圾回收機制具體在什麼時間點開始發生動作是不可預料的
③ 我的Eclipse不小心開了兩個代碼窗口,怎麼關掉一個呀
有兩個方法,第一:關掉其中一個,點那個叉的圖標或點-的圖標;第二個方法:左擊uploadAction.java那個位置不鬆手,往上移,移到*.jsp那個工具欄的位置旁邊,這樣就恢復了只有一個窗口。
④ Java怎麼實現一個窗口在用戶3秒後不進行任何操作的情況下自動關閉啊。最好有例子代碼啊,求教了啊!!
單獨顯示Dialog略奇怪,所以我用JFrame做例子,原理是一樣的
建立一個線程,睡3秒,醒來後就把JFrame窗體關閉。
給JFrame加事件監聽,包括所有你想監聽的事件,我這里為了簡便,只監聽了滑鼠單擊。一旦事件發生,則吵醒那個線程,這樣它就睡不足3秒,並且直接進入下一個迭代,繼續睡3秒。
直到有一次單擊後3秒內沒有操作,這時候線程不會觸發InterruptedException 異常,就會執行關閉窗體的操作
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
public class DummyTest {
public static void main(String[] args) {
final JFrame frame = new JFrame();
final Thread thread = new Thread(new Runnable() {
public void run() {
while (true) {
try {
Thread.sleep(3000);
frame.dispose();
return;
} catch (InterruptedException e) {}
}
}
});
frame.setSize(400, 400);
frame.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
System.out.println("clicked");
thread.interrupt();
}
});
frame.setVisible(true);
thread.start();
}
}
⑤ Java如何實現關閉一個窗口彈出另外一個窗口
在Java中,對窗口任何操作都會對應的監聽事件,故要實現關閉一個窗口時彈出另版外一個權窗口,只需要在該關閉的窗口的監聽事件中添加彈窗事件即可。
具體實現如下:
this.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e)
{
setVisible(false);
new JFrame("新窗口");
}});
在JavaGUI編程中,關閉窗口彈出新窗口是很常見的動作,比如一個窗口的業務操作完成了,需要跳轉到另一個窗口繼續執行,此時就需要關閉舊窗口並彈出新窗事件。值得注意的地方時,有時候的關閉往往只是暫時的將舊窗口暫時隱藏,而不是真的關閉,因為之後可能還會繼續用到,為了節省開銷,暫時的隱藏有利於提供效率。
⑥ java怎麼樣通過按鈕關閉一個JFrame
importjavax.swing.JFrame;
{
publicstaticvoidmain(String[]args){
newFrameTest("frame1");
newFrameTest("frame2");
newFrameTest("frame3");
}
publicFrameTest(Stringtitle){
this.setTitle(title);
this.setSize(800,600);
// this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// this.setDefaultCloseOperation(HIDE_ON_CLOSE);
// this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
this.setVisible(true);
}
}
只要在每個Frame里設定this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);即可。
EXIT_ON_CLOSE,關閉程序。(所有窗口和進程都會關閉)
DISPOSE_ON_CLOSE,只關閉本窗口。
HIDE_ON_CLOSE,只隱藏本窗口,不關閉。
DO_NOTHING_ON_CLOSE,不做任何事,點擊關閉無效。