gpt4 book ai didi

java - SwingX JX表 : use ColorHighlighter to color rows based on a "row object"

转载 作者:搜寻专家 更新时间:2023-10-31 20:14:51 26 4
gpt4 key购买 nike

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

我在表格中显示了一个对象列表,每一行代表一个对象。我想为显示特定类型对象的行着色不同的颜色。

看起来我应该使用 ColorHighlighter .但是我找不到这方面的例子,除了简单的荧光笔,比如“每隔一行涂上颜色”或类似的东西。

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

谁能帮我找出正确的方向来让它发挥作用?

最佳答案

没关系,我想通了。很难找到正确使用 ComponentAdapter 的方法。

JXTable table = ...
final List<Item> 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);

关于java - SwingX JX表 : use ColorHighlighter to color rows based on a "row object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9791719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com