Swing/TabWidth のバックアップの現在との差分(No.14)
- category: swing folder: TabWidth title: JTabbedPaneのタブ幅を固定 tags: [JTabbedPane] author: aterai pubdate: 2005-06-13T03:13:10+09:00 description: JTabbedPaneのタブ幅をできるだけ一定のサイズに固定します。 image:
概要
JTabbedPane
のタブ幅をできるだけ一定のサイズに固定します。
Screenshot
Advertisement
サンプルコード
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));
@Override
protected int calculateTabWidth(int placement, int index, FontMetrics metrics) {
return Math.max(MIN_TAB_WIDTH, super.calculateTabWidth(placement, index, metrics));
}
});
View in GitHub: Java, Kotlin解説
上記のサンプルでは、BasicTabbedPaneUI
のcalculateTabWidth
メソッドをオーバーライドして、JTabbedPane
のタブ幅がタイトル文字列の長さにかかわらず一定以上になるように設定しています。
上記のサンプルでは、BasicTabbedPaneUI
のcalculateTabWidth
メソッドをオーバーライドしてJTabbedPane
のタブ幅がタイトル文字列の長さにかかわらず一定以上になるように設定しています。
- タイトル文字列が短くても、最低
MIN_TAB_WIDTH(100px)
のタブ幅を維持する - タブ列が
2
段以上になると、指定されたタブ幅を維持できない場合がある
- -
以下のように、
html
タグを使ってタブ幅を固定する方法もあります。
- タイトル文字列が短くても最低
MIN_TAB_WIDTH(100px)
のタブ幅を維持する - タブランが
2
列以上になると指定されたタブ幅を維持できない場合がある - 以下のように、
html
タグを使ってタブ幅を固定する方法もあるpublic String makeTitle(String title) { return "<html><table width='100'><tr><td align='center'>"+ title+ "</td></tr></table>"; return "<html><table width='100'><tr><td align='center'>" + title + "</td></tr></table>"; }