Swing/ImmovableFrame のバックアップの現在との差分(No.5)
TITLE:JInternalFrameを固定
JInternalFrameを固定
編集者:Terai Atsuhiro~
作成日:2005-10-10
更新日:2022-11-11 (金) 14:46:01
概要
JInternalFrame
をマウスなどで移動できないように固定します。
Screenshot
Advertisement
概要
JInternalFrameをマウスなどで移動できないように固定します。#screenshot
サンプルコード
#spanend
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]);
}
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
#spanadd
BasicInternalFrameUI ui = (BasicInternalFrameUI) immovableFrame.getUI();
#spanend
#spanadd
Component titleBar = ui.getNorthPane();
#spanend
#spanadd
for (MouseMotionListener l: titleBar.getListeners(MouseMotionListener.class)) {
#spanend
titleBar.removeMouseMotionListener(l);
#spanadd
}
#spanend
- &jnlp;
- &jar;
- &zip;
解説
JInternalFrameのMouseMotionListenerをすべて削除することで、マウスによる移動を不可能にしています。解説
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(); #spanadd ui.setNorthPane(null); #spanend #spanadd internalframe.setBorder(BorderFactory.createEmptyBorder()); #spanend #spanadd internalframe.setSize(200, 50); #spanend #spanadd internalframe.add(new JLabel("Non-movable frame", SwingConstants.CENTER)); #spanend #spanadd internalframe.setLocation(10, 10); #spanend #spanadd internalframe.pack(); #spanend
#screenshot(,screenshot2.png)