Swing關(guān)閉和打開frame
Posted on 2008-02-23 23:30 kooyee 閱讀(1723) 評(píng)論(1) 編輯 收藏 所屬分類: Swing/Applet1。
close frame
frame.dispose();//not fire INTERNAL_FRAME_CLOSING event, but fire INTERNAL_FRAME_CLOSED event

frame.setClosed(true);//fire INTERNAL_FRAME_CLOSING event and INTERNAL_FRAME_CLOSED event
open frame
jDesktopPane.remove(frame);
jDesktopPane.add(frame);
frame.show();
在添加frame之前必須先把舊的移出父容器, 解除和原來(lái)父容器的聯(lián)系. 否則會(huì)導(dǎo)致
illegal component position. ( 由于覆蓋了原先添加的位置,雖然是同一個(gè)object).
//if frame not exist or closed
if (frame == null||frame.isClosed()) {
frame = new Frame();
jDesktopPane.remove(frame);
jDesktopPane.add(frame);
frame.setVisible(true);
}
//if not create new frame object use following
//if (!frame.isShowing()){
// jDesktopPane.remove(frame);
// jDesktopPane.add(frame);
// frame.setVisible(true);
//}

//to active the frame
try {
frame.setSelected(true);
} catch (Exception e) {
e.printStackTrace();
}
2。
如果從frame的子容器中的button等去關(guān)閉frame,要用
JInternalFrame parent = (JInternalFrame)this.getRootPane().getParent();//得到frame
parent.dispose();
先得到子控件的頂窗格,rootPane的parent才是上層的frame控件。 如果直接用this.getParent()得到的只是包含這個(gè)控件的容器(JPanel等)。
3。
通過(guò)Matisse在一個(gè)class中添加多個(gè)frames, eclipse中在design view狀態(tài)下右鍵outline 中Other Components去添加其他控件,包括internal frame。
4。
frame
isClosed() 驗(yàn)證是否關(guān)閉,沒(méi)建立frame實(shí)例是,return false。 當(dāng)建立實(shí)例后,frame顯示則return false,frame dispose后return true
isShowing() 驗(yàn)證是否顯示,不再desktop或其他container中顯示,這return false。
激活active a frame 使用:
setSelected(true)
close frame




open frame



在添加frame之前必須先把舊的移出父容器, 解除和原來(lái)父容器的聯(lián)系. 否則會(huì)導(dǎo)致
illegal component position. ( 由于覆蓋了原先添加的位置,雖然是同一個(gè)object).





















2。
如果從frame的子容器中的button等去關(guān)閉frame,要用


先得到子控件的頂窗格,rootPane的parent才是上層的frame控件。 如果直接用this.getParent()得到的只是包含這個(gè)控件的容器(JPanel等)。
3。
通過(guò)Matisse在一個(gè)class中添加多個(gè)frames, eclipse中在design view狀態(tài)下右鍵outline 中Other Components去添加其他控件,包括internal frame。
4。
frame
isClosed() 驗(yàn)證是否關(guān)閉,沒(méi)建立frame實(shí)例是,return false。 當(dāng)建立實(shí)例后,frame顯示則return false,frame dispose后return true
isShowing() 驗(yàn)證是否顯示,不再desktop或其他container中顯示,這return false。
激活active a frame 使用:
setSelected(true)