Получение цветов 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