• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JInternalFrameを閉じる
#navi(../)
RIGHT:Posted by [[aterai]] at 2008-05-05
#tags(JInternalFrame, JDesktopPane, DesktopManager)
RIGHT:Posted by &author(aterai); at 2008-05-05
*JInternalFrameを閉じる [#uf3146bf]
JInternalFrameを閉じます。
``JInternalFrame``を閉じます。

-&jnlp;
-&jar;
-&zip;

//#screenshot
#ref(http://lh3.ggpht.com/_9Z4BYR88imo/TQTJcTXtdNI/AAAAAAAAAUY/zL_wkJJa_Ks/s800/CloseInternalFrame.png)

**サンプルコード [#y0ad6085]
#code{{
#code(link){{
closeSelectedFrameAction1 = new AbstractAction() {
  public void actionPerformed(ActionEvent e) {
  @Override public void actionPerformed(ActionEvent e) {
    JInternalFrame f = desktop.getSelectedFrame();
    if(f!=null) {
      desktop.getDesktopManager().closeFrame(f);
    }
  }
};
}}

#code{{
closeSelectedFrameAction2 = new AbstractAction() {
  public void actionPerformed(ActionEvent e) {
  @Override public void actionPerformed(ActionEvent e) {
    JInternalFrame f = desktop.getSelectedFrame();
    if(f!=null) {
      f.doDefaultCloseAction();
    }
  }
};
}}

#code{{
closeSelectedFrameAction3 = new AbstractAction() {
  public void actionPerformed(ActionEvent e) {
  @Override public void actionPerformed(ActionEvent e) {
    try{
      JInternalFrame f = desktop.getSelectedFrame();
      if(f!=null) {
        f.setClosed(true);
      }
    }catch(java.beans.PropertyVetoException ex) {
      ex.printStackTrace();
    }
  }
};
}}

#code{{
disposeSelectedFrameAction = new AbstractAction() {
  public void actionPerformed(ActionEvent e) {
  @Override public void actionPerformed(ActionEvent e) {
    JInternalFrame f = desktop.getSelectedFrame();
    if(f!=null) {
      f.dispose();
    }
  }
};
}}

**解説 [#v8ddc342]
上記のサンプルでは、選択されているJInternalFrameをツールバーのボタンやESCキー((OSがWindowsの場合のデフォルトは、Ctrl+F4))で閉じることができます。
上記のサンプルでは、選択されている``JInternalFrame``をツールバーのボタンや``ESC``キー(``OS``が``Windows``の場合のデフォルトは、``Ctrl+F4``)で閉じることができます。

- RED
-- JInternalFrame#dispose メソッドを使用
- ``RED``
-- ``JInternalFrame#dispose``メソッドを使用
-- 閉じた後、他のフレームに選択状態が移動しない
- GREEN
-- DesktopManager#closeFrame メソッドを使用
- BLUE
-- JInternalFrame#doDefaultCloseAction メソッドを使用
//-- JInternalFrame#setDefaultCloseOperation の設定に従う
- YELLOW
-- JInternalFrame#setClosed(true) メソッドを使用
- ``GREEN``
-- ``DesktopManager#closeFrame``メソッドを使用
- ``BLUE``
-- ``JInternalFrame#doDefaultCloseAction``メソッドを使用
//-- ``JInternalFrame#setDefaultCloseOperation``の設定に従う
- ``YELLOW``
-- ``JInternalFrame#setClosed(true)``メソッドを使用

----
JDK 1.5 + WindowsL&F では、JInternalFrameを閉じたとき、アイコン化されているJInternalFrameには選択状態は移動しません。
``JDK 1.5`` + ``WindowsLookAndFeel``では、``JInternalFrame``を閉じたとき、アイコン化されている``JInternalFrame``には選択状態は移動しません。

//**参考リンク
**コメント [#o6a47604]
#comment