JTable изменить цвета ячейки с помощью TableCellRenderer - PullRequest
2 голосов
/ 27 апреля 2011

Я использую JTable в своем GUI-приложении в качестве сетки для представления позиций в игре. Я хочу, чтобы ячейки таблицы, которые представляют определенную позицию объекта, имели определенный цвет, а на некоторых действиях - объект, который нужно переместить (то есть, ячейку цвета, чтобы перемещаться в Grid / JTable). Я знаю, что могу изменить цвета ячеек, создав класс, который расширяет DefaultTableCellRenderer, это единственный способ сделать это? или есть более простой способ изменения цвета ячеек ?? Также JXTable лучше, чем JTable для такого приложения?

РЕДАКТИРОВАТЬ: Я не учел тот факт, что мне нужны определенные цвета ячеек для динамического изменения, т. Е. С помощью нажатий кнопок, нажатий клавиш клавиатуры и т. Д., Это все еще возможно с любым TableCellRenderer в Если я все еще использую JTable?

Спасибо

Ответы [ 2 ]

4 голосов
/ 27 апреля 2011

В качестве альтернативы рассмотрите возможность использования prepareRenderer(), как предложено @mKorbel и показано в статье Отображение строк таблицы .

3 голосов
/ 27 апреля 2011

С JTable лучший способ сделать это - DefaultTableCellRenderer.

Однако, если вы используете JXTable, будет гораздо проще использовать Highlighter и пользовательский Predicate.Как правило, предикаты используются для раскраски на основе содержимого ячейки, но вы также можете легко настроить цвет на основе строки / столбца и некоторого внешнего значения.

Посмотрите http://www.jarvana.com/jarvana/view/org/swinglabs/swingx-core/1.6.2/swingx-core-1.6.2-javadoc.jar!/org/jdesktop/swingx/JXTable.html в разделе Рендеринг иВыделение, которое представляет собой полосатый стол и сопоставление с образцом.По сути, вы сделали бы то же самое, что и подсветка шаблонов, но с вашим собственным предикатом.

...