TITLE:JInternalFrameを一番手前に表示

JInternalFrameを一番手前に表示

Posted by terai at 2004-06-21

概要

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

  • &jnlp;
  • &jar;
  • &zip;

#screenshot

サンプルコード

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

解説

上記のサンプルでは、一番最初に作成したフレームがJLayeredPane.DEFAULT_LAYERより一つ上のレイヤーに追加されているため、後から追加されたフレームは、これより手前に表示することが出来なくなっています。

参考リンク

コメント

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