2016-11-08 6 views
0

У меня есть таблица с четырьмя столбцами, называемая ID, Name, Subject, Marks.
Если метки ниже 35, то я меняю цвет колонки Marks на RED еще BLACK.Как использовать TableColumnModelListener для изменения цвета столбца на основе перестановки в java

Здесь у меня проблема, если я изменил положение столбца Marks, тогда он станет «ЧЕРНЫМ», и тот, который в настоящее время находится в позиции меток, становится цветным.

Я попытался реализовать метод TableColumnModelListener и переопределенный метод columnMoved(). Когда я пытаюсь получить индекс столбца как tableModel.getColumnIndex("Marks"), он все еще дает индекс предыдущей позиции, но не новый.

Есть ли способ получить новый индекс столбца, передав его имя?

ответ

1

Вы устанавливаете цвета в реализации TableCellRenderer (возможно, исходя из DefaultTableCellRenderer). Индексы row и column, представленные в методе getTableCellRendererComponent, составляют вид индексы, а не модель индексы. Скорее всего, вы используете индекс просмотра для индексации модели или наоборот.

Вы можете изменить индекс с точки зрения моделирования с использованием любого из JTable.convertXXXIndexToModel методов, или модели для просмотра на JTable.convertXXXIndexToView (где XXX является или Column). См. JTable class documentation для более подробной информации.