TITLE:JInternalFrameを閉じる

Posted by at 2008-05-05

JInternalFrameを閉じる

`JInternalFrame`を閉じます。

  • &jnlp;
  • &jar;
  • &zip;
CloseInternalFrame.png

サンプルコード

closeSelectedFrameAction1 = new AbstractAction() {
  @Override public void actionPerformed(ActionEvent e) {
    JInternalFrame f = desktop.getSelectedFrame();
    if(f!=null) {
      desktop.getDesktopManager().closeFrame(f);
    }
  }
};
View in GitHub: Java, Kotlin
closeSelectedFrameAction2 = new AbstractAction() {
  @Override public void actionPerformed(ActionEvent e) {
    JInternalFrame f = desktop.getSelectedFrame();
    if(f!=null) {
      f.doDefaultCloseAction();
    }
  }
};
closeSelectedFrameAction3 = new AbstractAction() {
  @Override public void actionPerformed(ActionEvent e) {
    try{
      JInternalFrame f = desktop.getSelectedFrame();
      if(f!=null) {
        f.setClosed(true);
      }
    }catch(java.beans.PropertyVetoException ex) {
      ex.printStackTrace();
    }
  }
};
disposeSelectedFrameAction = new AbstractAction() {
  @Override public void actionPerformed(ActionEvent e) {
    JInternalFrame f = desktop.getSelectedFrame();
    if(f!=null) {
      f.dispose();
    }
  }
};

解説

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

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

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


コメント