次のコードを使用して JTabbedPane を作成します
new JTabbedPane(JTabbedPane.LEFT,JTabbedPane.SCROLL_TAB_LAYOUT);
タブ選択領域よりも幅が狭いスクロールになります
タブ選択領域に収まるようにスクロール幅を広くするにはどうすればよいですか?
次のコードを使用して JTabbedPane を作成します
new JTabbedPane(JTabbedPane.LEFT,JTabbedPane.SCROLL_TAB_LAYOUT);
タブ選択領域よりも幅が狭いスクロールになります
タブ選択領域に収まるようにスクロール幅を広くするにはどうすればよいですか?
新しい優先サイズBasicTabbedPaneUI
を提供する際に、独自のボタンを拡張および実装できます。これらのボタンの独自のプライベート実装がcreateScrollButton()
あるようです - . 次のような同様のものを作成できます。BasicTabbedPaneUI
ScrollableTabButton
public class ExtendedTabbedPaneUI extends BasicTabbedPaneUI {
@Override
protected JButton createScrollButton(int direction) {
if (direction != SOUTH && direction != NORTH && direction != EAST &&
direction != WEST) {
throw new IllegalArgumentException("Direction must be one of: " +
"SOUTH, NORTH, EAST or WEST");
}
//return new ScrollableTabButton(direction);
return new BasicArrowButton(direction,
UIManager.getColor("TabbedPane.selected"),
UIManager.getColor("TabbedPane.shadow"),
UIManager.getColor("TabbedPane.darkShadow"),
UIManager.getColor("TabbedPane.highlight")) {
@Override
public Dimension getPreferredSize() {
int maxWidth = calculateMaxTabWidth(JTabbedPane.LEFT);
return new Dimension(maxWidth, super.getPreferredSize().height);
}
};
}
}
新しい UI をセットアップするには:
tabbedPane.setUI(new ExtendedTabbedPaneUI());