gpt4 book ai didi

java - 带有 DefaultTableCellrenderer 和备用 strip 荧光笔的 JXTable

转载 作者:搜寻专家 更新时间:2023-11-01 02:53:41 25 4
gpt4 key购买 nike

我更新到 SwingX-1.6.2 但发现了 1.6 中没有出现的问题。 JXTable 单元格的颜色看起来很奇怪。我使用带有备用条纹 (HighlighterFactory.createAlternateStriping) 的荧光笔来设置颜色,并使用 DefaultTableCellRenderer 的子类来设置文本、字体...

从 1.6.1 开始,如果设置了自定义单元格渲染器,荧光笔的颜色似乎会被忽略。文档说有一个 hack,但它不起作用。

有人解决这个问题吗?

最佳答案

对于 SwingX 中的自定义单元格呈现,

  • 永不子类 xxRenderer
  • 永不继承 JXTable(也不是 JXList、JXTree/Table)

代替

  • 实现/使用 StringValue 来配置“内容”方面,如文本、图标 ..
  • 使用/实现 Highlighter 来配置“视觉”方面,如颜色、字体、画家
  • 如果需要有条件的视觉装饰,实现/使用 HighlightPredicate 并用它配置 Highlighter
  • 使用 StringValue 和/或 Highlighter 配置 xxRenderer

编辑:

如果需要不支持的渲染组件类型,方法是实现一个 ComponentProvider。这有点麻烦,因为提供者必须履行严格的契约(Contract)(比如重置保证的属性值,尊重 StringValue,......请参阅 api 文档)但每个组件类型只需要一次。完成后,可以在所有类型的集合组件(列表 JXList、JXComboBox、JXTree/Table)中使用相同的提供者

关于java - 带有 DefaultTableCellrenderer 和备用 strip 荧光笔的 JXTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6150618/

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