2016-06-10 124 views
0

我目前有一個JComboBox總是設置在屏幕的底部,所以內容總是上升。看到我希望它上升,我想改變組合框上箭頭的方向。我目前這樣做是這樣的:保持默認用戶界面,同時改變某些方面

comboBox.setUI(new BasicComboBoxUI() 
{ 
    @Override 
    protected JButton createArrowButton() { 
     return new BasicArrowButton(BasicArrowButton.NORTH); 
    } 
}); 

但是,當這樣做時,組合框變成一個有點灰色的版本。我怎麼能這樣做,所以它是默認的ComboBoxUI,但箭頭朝上?

回答

2

如果你看一下源代碼,你會看到在BasicComboBoxUI該方法的默認實現:

protected JButton createArrowButton() { 
    JButton button = new BasicArrowButton(BasicArrowButton.SOUTH, 
           UIManager.getColor("ComboBox.buttonBackground"), 
           UIManager.getColor("ComboBox.buttonShadow"), 
           UIManager.getColor("ComboBox.buttonDarkShadow"), 
           UIManager.getColor("ComboBox.buttonHighlight")); 
    button.setName("ComboBox.arrowButton"); 
    return button; 
} 

當然重寫BasicComboBoxUI意味着你失去了LAF UI。例如,你會失去Windows和MAC定製的LAF。你真的需要覆蓋你想支持的所有LAF的用戶界面。

相關問題