Я хочу изменить цвет строки JTable
после нажатия кнопки. Я нашел много примеров, которые показывают, как инициировать таблицу с разными цветами строк, а также как изменить цвет при выборе строки. Однако, интересно, какой правильный способ изменить цвет при нажатии на JButton.Как изменить цвет строки JTable после нажатия кнопки
TableCellRenderer colorRenderer = new ColorRenderer();
table.setDefaultRenderer(String.class, colorRenderer);
private class ColorRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
@Override
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (hasFocus) {
setBackground(Color.cyan);
} else if (isSelected) {
setBackground(table.getSelectionBackground());
} else {
setBackground(table.getBackground());
}
return this;
}
}
спасибо. Когда я применяю этот рендерер и загружаю данные, он говорит «Исключение в потоке» AWT-EventQueue-0 «java.lang.StackOverflowError». У вас есть идеи, почему это происходит? –
для меня это работает, как вы загружаете данные? –
Теперь это работает. Цвета изменяются при загрузке данных. Однако, когда я нажимаю кнопку, цвет строки не изменяется. Поэтому я предполагаю, что «isSelected» не передается визуализатору. –