Получение цветов TableCellEditor для соответствия внешнему виду

Так что у меня есть собственные CellEditors и CellRenderers, и хотя я делаю

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

в моем getTableCellRendererCompoent цвета совпадают только в каждом ДРУГОМ ряду, так как большая часть того, что я пробовал, кажется, чередует их. Как я могу получить значения цветов таким образом, чтобы они соответствовали тому, на что похожа остальная часть таблицы? Я также очень хотел бы иметь возможность создавать хорошие границы, чтобы соответствовать средствам визуализации, происходящим от DefaultTableCellRenderer.

Я пытался разобрать DefaultTableCellRenderer, и я заблудился, пытаясь отследить этот объект пользовательского интерфейса. Мне просто нужны правильные свойства, чтобы вытащить из UIManager? Лидерство в правильном направлении будет высоко ценится.

Спасибо всем, этот сайт качается. Джошуа

1 ответ

Да, вы должны использовать палитру цветов 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

Другие вопросы по тегам