TITLE:JToolBarのドッキングを上下のみに制限
#navi(../)
*JToolBarのドッキングを上下のみに制限 [#sa3c56e1]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2006-09-18~
更新日:&lastmod;

#contents

**概要 [#gf7f68c7]
JToolBarのドッキングを上下のみに制限して、左右を無視するように設定します。

#screenshot

**サンプルコード [#v04d7b69]
 toolbar.setUI(new BasicToolBarUI() {
   public boolean canDock(Component c, Point p) {
     return super.canDock(c, p) ? isHorizontalDockingConstraint(c, p) : false;
   }
   private boolean isHorizontalDockingConstraint(Component c, Point p) {
     if (!c.contains(p)) return false;
     int iv = (toolBar.getOrientation() == JToolBar.HORIZONTAL)
                   ? toolBar.getSize().height
                   : toolBar.getSize().width;
     if (p.x >= c.getWidth() - iv) {
       return false;
     }else if (p.x < iv) {
       return false;
     }else{
       return true;
     }
   }
 });

-&jnlp;
-&jar;
-&zip;

**解説 [#f1439991]
ToolBarUI#canDock(Component, Point) メソッドをオーバーライドして、左右の場合はfalseを返すようにしています。

上記のisHorizontalDockingConstraintメソッドは、ドッキングできるかどうかを判定しているBasicToolBarUIのgetDockingConstraintメソッドがprivateのため、コピーしたものをすこしだけ条件を変更しただけのものになっています。

//**参考リンク
**コメント [#b2e3abbf]
#comment