概要

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

サンプルコード

tabbedPane.setUI(new BasicTabbedPaneUI() {
  @Override protected int calculateTabWidth(int tabPlacement, int tabIndex, FontMetrics metrics) {
    return Math.max(MIN_TAB_WIDTH, super.calculateTabWidth(tabPlacement, tabIndex, metrics));
  }
});
view all

解説

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

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


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

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

コメント