Swing/TabWidth のバックアップの現在との差分(No.8)
TITLE:JTabbedPaneのタブ幅を固定
JTabbedPaneのタブ幅を固定
編集者:Terai Atsuhiro~
作成日:2005-06-13
更新日:2021-04-17 (土) 02:58:20
概要
JTabbedPane
のタブ幅をできるだけ一定のサイズに固定します。
Screenshot
Advertisement
概要
JTabbedPaneのタブ幅をできるだけ一定のサイズに固定します。#screenshot
サンプルコード
#spanend
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;
}
});
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
#spanadd
tabbedPane.setUI(new BasicTabbedPaneUI() {
#spanend
@Override
protected int calculateTabWidth(int placement, int index, FontMetrics metrics) {
return Math.max(MIN_TAB_WIDTH, super.calculateTabWidth(placement, index, metrics));
}
#spanadd
});
#spanend
- &jnlp;
- &jar;
- &zip;
解説
上記のサンプルでは、BasicTabbedPaneUIのcalculateTabWidthメソッドをオーバーライドして、下のJTabbedPaneのタブ幅がタイトル文字列の長さにかかわらず一定になるように指定しています。解説
上記のサンプルでは、BasicTabbedPaneUI
のcalculateTabWidth
メソッドをオーバーライドしてJTabbedPane
のタブ幅がタイトル文字列の長さにかかわらず一定以上になるように設定しています。
JTabbedPaneのサイズが十分で無い場合、タブ列が二段になってタブは指定された幅を維持出来なくなります。
以下のように、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>"; } #spanadd public String makeTitle(String title) { #spanend return "<html><table width='100'><tr><td align='center'>" + title + "</td></tr></table>"; #spanadd } #spanend