Я создал JTable
с помощью AbstractTableModel
. Я хотел бы отметить (изменить цвет ячейки) в этом JTable
третьем столбце, который имеет ту же запись, что и второй столбец. Например:Выделите дубликаты в JTable
и так, с помощью этого поста Check duplicate data in jtable before proceeding
Я пришел к этому:
table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer()
{
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
row, column);
TreeSet<Object> set = new TreeSet<Object>();
for (int i=0; i<model.getRowCount();i++){
Object obj = model.getValueAt(i,1); //(row, column)
if(!set.add(obj))
{
c.setBackground(new java.awt.Color(255, 72, 72));
}
else{
c.setBackground(null);
}
}
return c;
}
});
Но, несмотря на то, кажется, что он правильно проверяет каждый (из-за некоторой печати, которую я сделал), ничего не окрашено. Я хотел бы добавить, что созданный мной JTable
- это JTable
, который всегда меняется, то есть есть две кнопки, для PREVIOUS
и NEXT
, и эта таблица всегда меняет каждую форму - также меняется число столбцов.
Если что-то еще запрашивается, я бы отредактировал мое сообщение.
спасибо.
[нет идеи, mabye здесь лучше ответы] (http://stackoverflow.com/questions/7132400/jtable-row-hightlighter-based- on-value-from-tablecell), возможно, но для лучшей помощи скорее опубликуйте SSCCE, short, runnable, compilable, hardcode array для AbstractTableModel как локальную переменную – mKorbel
как изображение связано с вашим вопросом? дублировать столбцы против строк, переднего плана и фона? Если это не удастся удалить. И лучше показать SSCCE, который демонстрирует проблему. И будьте осторожны с [печально известной цветной памятью DefaultTableCellRenderer] (http://stackoverflow.com/a/9617446/203657): установите цвета (выделение или нуль) _before_, вызывающие супер. – kleopatra
@kleopatra изображение используется, чтобы продемонстрировать не то, как я отмечаю дубликаты, но как мой текущий JTable и что я хочу проверить. –