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 游客
          謝謝`` 找了很多,就這個派上用場 幫我解決問題咯!
          主站蜘蛛池模板: 安泽县| 凤冈县| 株洲县| 楚雄市| 商南县| 三门峡市| 利川市| 建昌县| 鹤山市| 富锦市| 乐平市| 钟祥市| 拉萨市| 云梦县| 黄石市| 万年县| 衡阳市| 长乐市| 黔江区| 乐山市| 淮阳县| 松滋市| 宁城县| 盱眙县| 苗栗县| 兴海县| 山东省| 吐鲁番市| 渭源县| 宁津县| 福安市| 阿瓦提县| 安丘市| 兴和县| 太白县| 巴彦县| 余庆县| 特克斯县| 濮阳县| 南开区| 太和县|