动态着色jTable行

时间:2012-07-19 09:55:26

标签: swing jtable tablecellrenderer

在上一个问题的回答中,Coloring jTable row,但现在我不确定新问题是否在这里,将颜色设置为行正在运行。但我想从for循环中给它,意味着我想为第一行设置颜色。我给的是我用过的,

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,然后每次条件为真时第1行将是彩色的。我怎么能为它设置它?

1 个答案:

答案 0 :(得分:2)

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

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