SwingX JXTable:使用ColorHighlighter根据“行对象”为行着色

我正在使用JXTable,我知道如何基于JTable的DefaultRenderers执行此操作,但我想知道如何以基于HighlighterPipeline的JXTable友好的方式执行此操作。

我有一个表中显示的对象列表,每行代表一个对象。 我想将显示某种类型的对象的行着色为不同的颜色。

看起来我应该使用ColorHighlighter 。 但除了简单的荧光笔之外,我找不到这方面的例子,比如“每排其他颜色”或者其他类似的东西。

我需要行号,因为在JTable / TableModel范例中没有“行对象”这样的东西,但如果我能做到这一点,我可以轻松地测试一个谓词并返回true / false来告诉荧光笔启动或不启动。

有人可以帮我找出正确的方向让它发挥作用吗?

没关系,我明白了。 很难找出使用ComponentAdapter的方法。

JXTable table = ... final List itemList = ... final HighlightPredicate myPredicate = new HighlightPredicate() { @Override public boolean isHighlighted( Component renderer, ComponentAdapter adapter) { Item item = itemList.get(adapter.row); return testItem(item); } public boolean testItem(Item item) { ... } } ColorHighlighter highlighter = new ColorHighlighter( myPredicate, Color.RED, // background color null); // no change in foreground color table.addHighlighter(highlighter);