我创建了一个Jtable.This表由两列名称和时间戳组成。如果名字是“jane”,我想使行黄色。下面是该代码: -JTable CustomRenderer问题
class CustomRenderer extends DefaultTableCellRenderer {
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);
String name = table.getModel().getValueAt(row, 0).toString();
if (name.trim().equals("jane")) {
c.setBackground(Color.YELLOW);
}
return c;
}
}
然而,而不是更改行的颜色以黄色为特定的名称,它正在改变每row.I的颜色正在设置表的数据如下
tableModelName = (DefaultTableModel)jTableName.getModel();
jTableName.setDefaultRenderer(Object.class,new CustomRenderer());
for(int i=0; i<records.size(); i++)
{
tableModelName.addRow(records.get(i));
}
我做错了什么?
确保在访问模型之前使用'table.convertRowIndexToModel()'和'table.convertColumnIndexToModel()'。否则,任何表格排序或列重新排序都会使您的代码失败。 –
@JBNizet谢谢 – Addict