2

所以我有自定义 CellEditors 和 CellRenderers 虽然我正在做

component.setForeground(isSelected ? table.getSelectionForeground() : table.getForeground());
component.setBackground(isSelected ? table.getSelectionBackground() : table.getBackground());
component.setOpaque(true);

在我的 getTableCellRendererCompoent 中,颜色仅在每 OTHER 行上匹配,因为我尝试过的大多数外观和感觉似乎都在交替它们。如何以与表格其余部分相匹配的方式提取颜色值?我也非常希望能够制作漂亮的边框以匹配从 DefaultTableCellRenderer 继承的渲染器。

我试图剖析 DefaultTableCellRenderer,但我在试图追踪这个 UI 对象时迷路了。我是否只需要从 UIManager 中提取正确的属性?将不胜感激在正确方向上的领先优势。

谢谢大家,这个网站很震撼。约书亚

4

1 回答 1

4

是的,您应该使用 Swing 调色板颜色。例如:

final Color tableBackground = javax.swing.UIManager.getDefaults().getColor("Table.background");

这是表格的颜色键值:

  • Table.background Table.dropLineColor
  • Table.dropLineShortColor
  • Table.focusCellBackground
  • Table.focusCellForeground
  • Table.foreground Table.gridColor
  • Table.selectionBackground
  • Table.selectionForeground
  • Table.sortIconColor
  • TableHeader.background
  • TableHeader.focusCellBackground
  • TableHeader.foreground

或者,您也可以使用系统颜色。例如:

正常背景: SystemColor.window
选定背景: SystemColor.textHighlight
正常前景: SystemColor.text
选定前景: SystemColor.textText

于 2009-08-14T04:11:48.143 回答