TITLE:JToolBarのドッキングを上下のみに制限

JToolBarのドッキングを上下のみに制限

編集者:Terai Atsuhiro
作成日:2006-09-18
更新日:2024-02-02 (金) 11:42:23

概要

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

#screenshot

サンプルコード

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;

解説

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

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

コメント