Я создал JTable
с помощью AbstractTableModel
. Я хотел бы отметить (изменить цвет ячейки) в этом JTable
третий столбец, который имеет ту же запись, что и второй столбец. Например:
Итак, с помощью этого сообщения проверьте повторяющиеся данные в jtable, прежде чем продолжить а>
Я пришел к этому:
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
, и эта таблица всегда меняет каждую форму - также изменяется количество столбцов.
Если потребуется что-то еще, я бы отредактировал свой пост.
Спасибо.