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 游客
          謝謝`` 找了很多,就這個派上用場 幫我解決問題咯!
          主站蜘蛛池模板: 建瓯市| 北辰区| 荣昌县| 永宁县| 贵州省| 浠水县| 辉南县| 石河子市| 清丰县| 湟中县| 保靖县| 剑川县| 霞浦县| 界首市| 德州市| 万州区| 普宁市| 六盘水市| 丹东市| 昔阳县| 阳泉市| 蒲城县| 监利县| 芒康县| 桐柏县| 缙云县| 绥芬河市| 静安区| 同德县| 明光市| 丘北县| 芜湖县| 吴川市| 禄劝| 黑水县| 应城市| 巴塘县| 康乐县| 关岭| 绥芬河市| 清河县|