【发布时间】:2019-05-09 06:27:14
【问题描述】:
我想根据之前的计算将 JTable 的每一行的颜色设置为不同的颜色。但是,计算是正确的,它会触发我自己编写的 setRowColor() 方法,颜色正确,但整个表格的颜色已设置。
因此,如果最后一个元素是橙色,则整个表格将设置为橙色,尽管 setRowColor() 方法会以另一种颜色调用。任何其他颜色也是如此。您可以在此处的控制台输出中看到这一点:
Row 0: White
Row (0) & Cell (0) to java.awt.Color[r=255,g=255,b=255]
Row (0) & Cell (1) to java.awt.Color[r=255,g=255,b=255]
Row (0) & Cell (2) to java.awt.Color[r=255,g=255,b=255]
Row 1: Orange
Row (1) & Cell (0) to java.awt.Color[r=255,g=200,b=0]
Row (1) & Cell (1) to java.awt.Color[r=255,g=200,b=0]
Row (1) & Cell (2) to java.awt.Color[r=255,g=200,b=0]
它总是将整个表格设置为最后调用的颜色!为什么会这样,我该如何解决?这是我的代码:
private void setRowColor(int row, Color color){
for (int i = 0; i < 3; i++) {
TableCellRenderer tableCellRenderer = sellTable.getCellRenderer(row, i);
Component c = sellTable.prepareRenderer(tableCellRenderer, row, i);
c.setBackground(color);
System.out.println("Row (" + row + ") & Cell (" + i + ") to " + color.toString());
}
System.out.println();
System.out.println();
}
【问题讨论】: