Как изменить цвет фона отредактированной ячейки в JTable? - PullRequest
2 голосов
/ 02 марта 2012

Я искал везде, но мне все еще не удается найти ответ на мой вопрос.Я прочитал все о средствах визуализации ячеек и редакторах ячеек, но пока не знаю ... У меня есть JTable, и я хочу убедиться, что пользователи четко видят, какую ячейку они редактируют.по умолчанию отредактированная ячейка в JTable получает более темную границу, но я хотел бы сделать фон зеленым.Я могу сделать его зеленым, когда выбран, но как только я начинаю вводить данные, зеленый фон исчезает, и я пишу в белую ячейку.

Не могли бы вы помочь мне найти способ сохранить зеленый цвет фона ячейки даже при вводе данных?

1 Ответ

5 голосов
/ 03 марта 2012

Сначала получите цвет фона для выбора таблицы по умолчанию:

Color color = UIManager.getColor("Table.selectionBackground");

Во-вторых, переопределите prepareEditor(), как показано в этом примере , и установите цвет фона компонента редактора в соответствии:

@Override
public Component prepareEditor(TableCellEditor editor, int row, int col) {
    Component c = super.prepareEditor(editor, row, col);
    c.setBackground(color);
    return c;
}

Добавление: хотя это технически правильно, обратите внимание, что цвет компонента редактора обычно управляется соответствующим делегатом пользовательского интерфейса, когда он активен. Неудачный выбор может привести к плохому контрасту и ухудшению удобства использования. Тщательное тестирование на цели Look & Feels оправдано.

...