Swing 动态着色jTable行

Swing 动态着色jTable行,swing,jtable,tablecellrenderer,Swing,Jtable,Tablecellrenderer,在我之前问题的答案中,但现在我不确定新的问题是什么,将“颜色”设置为“行”是有效的。但我想从for循环中得到它,意味着我想为第I行设置颜色。我给你我用过的 for(int i=0;i<serialNumber;i++){ if((jTable1.getValueAt(i,1).toString()).equals(BidNumber)){ Enumeration<TableColumn> en = jTable1.getColumnModel().getColumns

在我之前问题的答案中,但现在我不确定新的问题是什么,将“颜色”设置为“行”是有效的。但我想从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());
    }
}

在这里,当第一列值等于BidNumber时,我试图为行设置颜色,但在cellrenderer(这里)中,它被设置为row==1,然后每当条件为true时,第一行将被着色。如何为第I行设置它?

更改
布尔兴趣row=row==1
,以满足您的要求,其中,
row==n
将产生所需的结果。您必须以某种有意义的方式定义
n


这可能来自表数据模型或通过其他方式提供

您的意思是将条件
行==1
替换为
行==i
?是的..我想为第i行设置颜色那么这里有什么问题?有什么东西阻止你这样做吗?我不能把row==I放进去,那我怎么做呢?是什么阻止你写
row==I
?正如MadProgrammer所解释的,您需要以某种方式检索
i
。从您的表格模型,从控制器,从其他地方。。。
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;
        }

    }