我用下面的代碼創建一個JTabbedPane的Swing JTabbedPane如何設置滾動寬度?
new JTabbedPane(JTabbedPane.LEFT,JTabbedPane.SCROLL_TAB_LAYOUT);
它導致滾動是在寬度上比標籤選擇面積較小的
我怎樣才能使滾動寬度更寬以便它適合選項卡選擇區域?
我用下面的代碼創建一個JTabbedPane的Swing 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());
對於定製,你也可以擴展** MetalTabbedPaneUI **,重寫** createScrollButton()**如Aqua建議,然後返回一個新的** ScrollableTabButton()* *而不是** BasicArrowButton **,如果你像我一樣有毛病。類** ScrollableTabButton **在[BasicTabbedPaneUI](http://www.docjar.com/html/api/javax/swing/plaf/basic/BasicTabbedPaneUI.java.html)中定義。 – ron190
你是什麼意思?你想讓這兩個箭頭佔據整個寬度? –
@GuillaumePolet是的,箭頭指針也會變寬。 –
爲什麼不用按鈕代替。並調整按鈕上的滾動條點擊。這將隱藏滾動條,並給你的UI更好的外觀 –