JInternalFrameを固定

編集者:Terai Atsuhiro
作成日:2005-10-10
更新日:2022-11-11 (金) 14:46:01

概要

JInternalFrameをマウスなどで移動できないように固定します。

http://terai.xrea.jp/swing/immovableframe/screenshot.png

サンプルコード

BasicInternalFrameUI ui = (BasicInternalFrameUI)immovableFrame.getUI();
Component north = ui.getNorthPane();
MouseMotionListener[] actions
  = (MouseMotionListener[])north.getListeners(MouseMotionListener.class);
for(int i=0;i<actions.length;i++) {
  north.removeMouseMotionListener(actions[i]);
}

解説

JInternalFrameのMouseMotionListenerをすべて削除することで、マウスによる移動を不可能にしています。

以下のようにしてタイトルバーを削除しても、移動できないフレームを作成することができます。

ui.setNorthPane(null);
internalframe.setBorder(BorderFactory.createEmptyBorder());
internalframe.setSize(200,50);
internalframe.add(new JLabel("移動できないフレーム", SwingConstants.CENTER));
internalframe.setLocation(10,10);
internalframe.pack();

http://terai.xrea.jp/swing/immovableframe/screenshot2.png

参考リンク

コメント