• 追加された行はこの色です。
  • 削除された行はこの色です。
#navi(../)
*JInternalFrameを固定 [#o5f11a62]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2005-10-10~
更新日:&lastmod;
---
category: swing
folder: ImmovableFrame
title: JInternalFrameを固定
tags: [JInternalFrame, MouseMotionListener]
author: aterai
pubdate: 2005-10-10T17:53:41+09:00
description: JInternalFrameをマウスなどで移動できないように固定します。
image: https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTOXXz-C5I/AAAAAAAAAcQ/0qYBPzKq7js/s800/ImmovableFrame.png
---
* 概要 [#summary]
`JInternalFrame`をマウスなどで移動できないように固定します。

#contents
**概要 [#lf0dad2e]
JInternalFrameをマウスなどで移動できないように固定します。
#download(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTOXXz-C5I/AAAAAAAAAcQ/0qYBPzKq7js/s800/ImmovableFrame.png)

http://terai.xrea.jp/swing/immovableframe/screenshot.png
* サンプルコード [#sourcecode]
#code(link){{
BasicInternalFrameUI ui = (BasicInternalFrameUI) immovableFrame.getUI();
Component titleBar = ui.getNorthPane();
for (MouseMotionListener l: titleBar.getListeners(MouseMotionListener.class)) {
  titleBar.removeMouseMotionListener(l);
}
}}

**サンプルコード [#a83e5c01]
 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]);
 }
* 解説 [#explanation]
`JInternalFrame`の`MouseMotionListener`をすべて削除して、マウスによる移動を不可能に設定しています。

-[[サンプルを起動>http://terai.xrea.jp/swing/immovableframe/sample.jnlp]]
-[[jarファイル>http://terai.xrea.jp/swing/immovableframe/sample.jar]]
-[[ソース>http://terai.xrea.jp/swing/immovableframe/src.zip]]
- 以下のようにタイトルバー自体を削除して移動できないフレームを作成する方法もある
#code{{
ui.setNorthPane(null);
internalframe.setBorder(BorderFactory.createEmptyBorder());
internalframe.setSize(200, 50);
internalframe.add(new JLabel("Non-movable frame", SwingConstants.CENTER));
internalframe.setLocation(10, 10);
internalframe.pack();
}}

**解説 [#k07f6217]
JInternalFrameのMouseMotionListenerをすべて削除することで、マウスによる移動を不可能にしています。
#ref(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTOZ803FiI/AAAAAAAAAcU/Bj1t9F8ZKqI/s800/ImmovableFrame1.png)

**参考リンク [#t17ee3f9]
-[[Java Forums - Lock JInternalPane>http://forum.java.sun.com/thread.jspa?forumID=57&threadID=609043]]
* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/plaf/basic/BasicInternalFrameUI.html#getNorthPane-- BasicInternalFrameUI#getNorthPane() (Java Platform SE 8)]
- [https://community.oracle.com/thread/1392111 Swing - Lock JInternalPane]

**コメント [#rd25830b]
* コメント [#comment]
#comment
#comment