TITLE:JInternalFrameを一番手前に表示

JInternalFrameを一番手前に表示

編集者:Terai Atsuhiro
作成日:2004-06-21
更新日:2022-02-01 (火) 22:41:27

概要

JLayeredPaneを使って、常に一番手前に表示されるJInternalFrameを作成します。

#screenshot

サンプルコード

 boolean flag = true;
 protected void createFrame() {
   MyInternalFrame frame = new MyInternalFrame();
   frame.setVisible(true);
   if(flag) {
     desktop.add(frame, new Integer(JLayeredPane.DEFAULT_LAYER.intValue()+1));
     flag = false;
   }else{
     desktop.add(frame);
   }
   try{
     frame.setSelected(true);
   }catch(java.beans.PropertyVetoException e) {}
 }
  • &jnlp;
  • &jar;
  • &zip;

解説

上記のサンプルでは、その他のフレームをメニューから追加しても、一番最初に作成したフレームがJLayeredPane.DEFAULT_LAYERより一つ上のレイヤーに追加されているため、これより手前に表示することができません。

参考リンク

コメント

  • 1.5でJFrameなどは、frame.setAlwaysOnTop(true)が使えるようになっています。 -- terai
  • ありがとうございます。現在GUIの作成をしていて、目下この情報を探していました。ありがとうございました -- G