Swing/TabWidth の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/TabWidth へ行く。
- Swing/TabWidth の差分を削除
--- 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 --- * 概要 [#summary] `JTabbedPane`のタブ幅をできるだけ一定のサイズに固定します。 #download(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTVAYay_fI/AAAAAAAAAm8/1gWXosPj93A/s800/TabWidth.png) * サンプルコード [#sourcecode] #code(link){{ tabbedPane.setUI(new BasicTabbedPaneUI() { @Override protected int calculateTabWidth(int placement, int index, FontMetrics metrics) { return Math.max(MIN_TAB_WIDTH, super.calculateTabWidth(placement, index, metrics)); } }); }} * 解説 [#explanation] 上記のサンプルでは、`BasicTabbedPaneUI`の`calculateTabWidth`メソッドをオーバーライドして`JTabbedPane`のタブ幅がタイトル文字列の長さにかかわらず一定以上になるように設定しています。 - タイトル文字列が短くても、最低`MIN_TAB_WIDTH(100px)`のタブ幅を維持する - タブランが`2`列以上になると、指定されたタブ幅を維持できない場合がある ---- 以下のように、`html`タグを使ってタブ幅を固定する方法もあります。 - タイトル文字列が短くても最低`MIN_TAB_WIDTH(100px)`のタブ幅を維持する - タブランが`2`列以上になると指定されたタブ幅を維持できない場合がある - 以下のように、`html`タグを使ってタブ幅を固定する方法もある #code{{ public String makeTitle(String title) { return "<html><table width='100'><tr><td align='center'>" + title + "</td></tr></table>"; } }} * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/plaf/basic/BasicTabbedPaneUI.html#calculateTabWidth-int-int-java.awt.FontMetrics- BasicTabbedPaneUI#calculateTabWidth(...) (Java Platform SE 8)] * コメント [#comment] #comment #comment