【发布时间】:2023-12-16 18:31:01
【问题描述】:
我正在寻找如何更改我的JTable 中某些行的颜色,这些行在一个名为Notfoundrow 的整数向量中具有索引,但是我遇到的问题是,表中的所有行都将颜色更改为红色!!
这是我的代码:
package essai_trafficclass;
import java.awt.Color;
import java.awt.Component;
import java.util.ArrayList;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class MonCellRenderer extends DefaultTableCellRenderer {
public static ArrayList<Integer> Notfoundrow1 = OneWayRelation.Notfoundrow;
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component cell = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
int L = 0;
while (L < Notfoundrow1.size()) {
System.out.println("la valeur du vecteur " + Notfoundrow1.get(L));
if (row == Notfoundrow1.get(L) && column == 1) {
cell.setBackground(Color.RED);
} else if (row == Notfoundrow1.get(L) && column == 1) {
cell.setBackground(Color.RED);
} else {
cell.setBackground(Color.WHITE);
}
L++;
}
return cell;
}
}
然后我调用这个类:
tableM.setDefaultRenderer(Object.class, new MonCellRenderer());
tableM 是我想要更改颜色的表(如果它的行)。
感谢您的帮助。
【问题讨论】:
-
初步想法,前两个
if语句是一回事。更改单元格颜色后,是否真的需要在获得肯定匹配后继续检查ArrayList? -
这个answer 也可以帮助你。
标签: java swing jtable tablecellrenderer