• category: swing folder: TabWidth title: JTabbedPaneのタブ幅を固定 tags: [JTabbedPane] author: aterai pubdate: 2005-06-13T03:13:10+09:00 description: JTabbedPaneのタブ幅をできるだけ一定のサイズに固定します。 image: https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTVAYay_fI/AAAAAAAAAm8/1gWXosPj93A/s800/TabWidth.png

概要

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 in GitHub: Java, Kotlin

解説

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

  • タイトル文字列が短くても、最低MIN_TAB_WIDTH(100px)のタブ幅を維持する
  • タブ列が2段以上になると、指定されたタブ幅を維持できない場合がある

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

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

参考リンク

コメント