kooyee ‘s blog

          開源軟件, 眾人努力的結晶, 全人類的共同財富
          posts - 103, comments - 55, trackbacks - 0, articles - 66
             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Swing關閉和打開frame

          Posted on 2008-02-23 23:30 kooyee 閱讀(1727) 評論(1)  編輯  收藏 所屬分類: Swing/Applet
          1。

          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之前必須先把舊的移出父容器, 解除和原來父容器的聯系. 否則會導致
          illegal component position. ( 由于覆蓋了原先添加的位置,雖然是同一個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等去關閉frame,要用
          JInternalFrame parent = (JInternalFrame)this.getRootPane().getParent();//得到frame
                  parent.dispose();

          先得到子控件的頂窗格,rootPane的parent才是上層的frame控件。 如果直接用this.getParent()得到的只是包含這個控件的容器(JPanel等)。



          3。

          通過Matisse在一個class中添加多個frames, eclipse中在design view狀態下右鍵outline 中Other Components去添加其他控件,包括internal frame。



          4。

          frame

          isClosed() 驗證是否關閉,沒建立frame實例是,return false。 當建立實例后,frame顯示則return false,frame dispose后return true

          isShowing() 驗證是否顯示,不再desktop或其他container中顯示,這return false。

          激活active a frame 使用:
          setSelected(true)







          評論

          # re: Swing關閉和打開frame  回復  更多評論   

          2008-07-18 10:23 by 游客
          謝謝`` 找了很多,就這個派上用場 幫我解決問題咯!
          主站蜘蛛池模板: 那坡县| 太仆寺旗| 望江县| 达尔| 万山特区| 黔南| 邓州市| 平定县| 仙游县| 牟定县| 连南| 中阳县| 逊克县| 余干县| 定南县| 灵山县| 万山特区| 蒙自县| 盐池县| 顺平县| 白水县| 金川县| 资兴市| 周口市| 长兴县| 扶余县| 乌兰察布市| 西充县| 临颍县| 留坝县| 佛山市| 清苑县| 赤壁市| 射阳县| 巴南区| 方山县| 桐柏县| 秭归县| 桂林市| 瓮安县| 南涧|