Pau*_*ers 6 java swing jcombobox
不可编辑的JComboBox中所选项目的背景颜色是一种蓝色:
有没有办法让它变成不同的颜色,例如白色?
这应该工作
jComboBox1.setRenderer(new DefaultListCellRenderer() {
@Override
public void paint(Graphics g) {
setBackground(Color.WHITE);
setForeground(Color.BLACK);
super.paint(g);
}
});
Run Code Online (Sandbox Code Playgroud)
渲染器分配的背景将被组合框弹出窗口中使用的JList的选择背景颜色覆盖.查看BasicComboBoxUI类的"paintCurrentValue"方法.所以解决方法是:
JComboBox comboBox = new JComboBox(...);
Object child = comboBox.getAccessibleContext().getAccessibleChild(0);
BasicComboPopup popup = (BasicComboPopup)child;
JList list = popup.getList();
list.setSelectionBackground(Color.RED);
Run Code Online (Sandbox Code Playgroud)
这也会影响弹出窗口的渲染.如果您不希望它影响弹出窗口,则需要创建自定义渲染器以专门设置所选项目的背景.
归档时间: |
|
查看次数: |
11798 次 |
最近记录: |