JTabbedPaneのタブ幅を固定

編集者:Terai Atsuhiro
作成日:2005-06-13
更新日:2021-04-17 (土) 02:58:20

概要

JTabbedPaneのタブ幅をできるだけ一定のサイズに固定します。

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

サンプルコード

tab1.setUI(new javax.swing.plaf.basic.BasicTabbedPaneUI() {
  protected int calculateTabWidth(int tabPlacement, int tabIndex,
                                  FontMetrics metrics) {
    int i = super.calculateTabWidth(tabPlacement, tabIndex, metrics);
    return (i<100) ? 100 : i;
  }
});

解説

上記のサンプルでは、BasicTabbedPaneUIのcalculateTabWidthメソッドをオーバーライドして、下のJTabbedPaneのタブ幅がタイトル文字列の長さにかかわらず一定になるように指定しています。

JTabbedPaneのサイズが十分で無い場合、タブ列が二段になってタブは指定された幅を維持出来なくなります。

以下のように、htmlタグを使って強引にタブ幅を固定する方法もあります。

public String makeTitle(String title) {
  return "<html><table width='100'><tr><td align='center'>"+
          title+
         "</td></tr></table>";
}

コメント