在我之前的问题Coloring jTable row的答案中,但现在我不确定这里是否有新问题,将颜色设置为行是否有效。但我想从 for 循环中给出它,这意味着我想为第 i 行设置颜色。我给了我用过的,
for(int i=0;i<serialNumber;i++){
if((jTable1.getValueAt(i,1).toString()).equals(BidNumber)){
Enumeration<TableColumn> en = jTable1.getColumnModel().getColumns();
while (en.hasMoreElements()) {
TableColumn tc = en.nextElement();
tc.setCellRenderer(new MyTableCellRenderer());
}
}
它将调用方法 cellrenderer,
public class MyTableCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
setBackground(null);
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
boolean interestingRow = row ==1;
if (interestingRow) {
setBackground(Color.YELLOW);
}
return this;
}
}
在这里,我试图在第一列值等于 BidNumber 时为该行设置颜色,但在 cellrenderer(此处)中,它设置为 row==1,然后每次条件为真时,第一行将被着色..如何为第 i 行设置它?