2016-06-10 54 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的用户界面。

相关问题