Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更改JComboBox颜色?_Java_Swing_Jcombobox - Fatal编程技术网

Java 如何更改JComboBox颜色?

Java 如何更改JComboBox颜色?,java,swing,jcombobox,Java,Swing,Jcombobox,我想更改所选组合框的颜色。 我不知道这个活动的名称。 它不是背景或前景,那又怎样呢? 有关图像的更多信息: 您必须为组合框编写一个新的渲染器。这里有一些很好的例子: 具体来说,您将编写一个新的单元渲染器。这里有一个很好的教程: 我希望这有帮助 Greg渲染器适用于下拉列表中的项目 当索引值为-1时,同样的渲染器也用于渲染组合框中显示的值。但是,背景颜色是由UI控制的,因此您不能只覆盖它。这就是问题所在 UIManager.getColor("ComboBox.selectionBackgroun

我想更改所选组合框的颜色。 我不知道这个活动的名称。 它不是背景或前景,那又怎样呢? 有关图像的更多信息:


您必须为组合框编写一个新的渲染器。这里有一些很好的例子:

具体来说,您将编写一个新的单元渲染器。这里有一个很好的教程:

我希望这有帮助


Greg

渲染器适用于下拉列表中的项目

当索引值为-1时,同样的渲染器也用于渲染组合框中显示的值。但是,背景颜色是由UI控制的,因此您不能只覆盖它。这就是问题所在

UIManager.getColor("ComboBox.selectionBackground");

属性用于控制背景,因此具有一致的LAF,指示组合框何时具有焦点。我不知道有什么简单的方法来控制这种行为。您需要编写一个自定义UI,根据所选值设置背景。

谢谢您的回答。我有自己的渲染,但我不知道如何继续处理第一行(选定的)。我知道它不起作用,我在回答中说。渲染器的背景色被忽略,并且使用UIManager中的背景,这就是您需要自定义UI的原因。@user3784463如果您使用的是nimbus,则UI键可能不同