4

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

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

有没有人解决这个问题?

4

3 回答 3

4

对于 SwingX 中的自定义单元格渲染,

  • 永远的子类 xxRenderer
  • 永远不会是 JXTable 的子类(也不是 JXList、JXTree/Table)

反而

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

编辑

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

于 2011-06-13T10:51:45.907 回答
0

我不知道 JXTable 是如何突出显示的,但您始终可以自己执行此操作。请参阅表格行渲染

于 2011-05-27T14:53:54.227 回答
0

我无法在 SSCCE 中重现该问题,但在我的(非常复杂的)应用程序中,我通过使用从 SwingX 的DefaultTableRenderer而不是 java 的DefaultTableCellRenderer继承的渲染器解决了这个问题。

于 2011-05-28T07:13:29.470 回答