仅为几个ComboBox使用一个自定义渲染器

时间:2016-10-23 10:24:45

标签: java swing

我目前正在完成"提供自定义渲染器"例如on this page。现在我想创造的不仅仅是其中一个盒子。我这样做是通过创建六个渲染器类,每个盒子一个。

现在我的问题。所有六个盒子都可以只有一个渲染器类吗?为此,我试图将两个变量解析为CustomBoxRenderer的构造函数,就像这样。

public ComboBoxRenderer(ImageIcon[] currentImage, String[] currentString)

但是由于程序看起来如何工作,currentImage数组在某一点之前是空的,所以我得到了一个异常。

但是,让我们假设这会起到我预期的效果,我仍然需要为每个盒子创建六个单独的渲染器实例,我也想避免这样做。

我希望这是足够的信息,我也可以提供我的完整代码,但我认为这里的页面太多了,如果没有,请告诉我。

1 个答案:

答案 0 :(得分:1)

如果我正确阅读你可以创建一个扩展组合框的类,只需调整它以便它自动使用你的自定义渲染器,那么你只需要创建一个自定义组合框的正常实例并将其用作正常,除非它会毫无困难地使用你的渲染器。

e.g。在你的构造函数中,你只需要这一行

this.setRenderer(new ComboBoxRenderer(currentImage, currentString));

我不确定为什么你认为你需要创建六个实例,因为渲染器处理每个盒子。

希望这有帮助。