我希望有一个包含唯一行数据的jtable,如果两个或多个行数据相同,那么我想更改那些行背景颜色。我发现自定义表格单元格渲染是这些操作的最佳选择,但我不知道如何使用自定义单元格渲染,请指导我。
这是我的代码:
ArrayList<String> dup1 = new ArrayList<String>();
int dup_flag=0;
for(int count = 0; count < getTablXtocsvXB_B3_B3_1().getRowCount(); count++){
String dup=(getTablXtocsvXB_B3_B3_1().getValueAt(count, 0).toString());
if(dup1.contains(dup)){
dup_flag=1;
//have to color this row since it is a duplicate one
getTablXtocsvXB_B3_B3_1().getColumnModel().getColumn(0).setCellRenderer(new colorRenderer());
else {
dup1.add(dup);
}
}
以下是自定义单元格呈现代码:
public class colorRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
setBackground(Color.RED);
return this;
}
}
我不知道自定义单元格渲染代码是否正确,也不知道如何合并这两个代码。我是这个自定义单元格渲染的新手,请提示一些代码做这个操作。还有其他办法吗?