Java 获取前景单元格jtable
我有这样的记录 我使用JTable.prepareRenderer(…)方法 但是我得到了前景,它的颜色不对,这是我的代码,所以怎么了 JTable代码:Java 获取前景单元格jtable,java,swing,Java,Swing,我有这样的记录 我使用JTable.prepareRenderer(…)方法 但是我得到了前景,它的颜色不对,这是我的代码,所以怎么了 JTable代码: tb1_1 = new javax.swing.JTable(){ public Component prepareRenderer (TableCellRenderer renderer, int rowIndex, int columnIndex){ Component componenet = super.pr
tb1_1 = new javax.swing.JTable(){
public Component prepareRenderer (TableCellRenderer renderer, int rowIndex, int columnIndex){
Component componenet = super.prepareRenderer(renderer, rowIndex, columnIndex);
if(rowIndex %2 == 0){
componenet.setForeground(Color.RED);
}else{
componenet.setForeground(Color.BLACK);
}
return componenet;
}
};
类获取颜色:
public class GetColor {
private int red;
private int green;
private int blue;
private Color color;
public GetColor(Color color) {
this.color = color;
}
public boolean isColorRed() {
return getRed() == 255 && getGreen() == 0 && getBlue() == 0;
}
private int getRed() {
return color.getRed();
}
private int getGreen() {
return color.getGreen();
}
private int getBlue() {
return color.getBlue();
}
}
最终此我的代码返回isRed
int r = 2;
int cl = 3;
TableCellRenderer tcr = tb1_1.getCellRenderer(r, cl);
Component c = tcr.getTableCellRendererComponent(tb1_1, dtb.getValueAt(r, cl), false, false, r, cl);
GetColor gc = new GetColor(c.getForeground());
System.err.println(gc.isColorRed()); **// is will return false when get Cell have foreground color red**
您看到的是 它通常是黑色的
java.awt.Color[r=0,g=0,b=0]
您可能需要查看prepareRenderer()提供的颜色
您将其设置为红色
java.awt.Color[r=255,g=0,b=0]
Component c = table.prepareRenderer(tcr, r, cl);
System.out.println(c.getForeground());
java.awt.Color[r=255,g=0,b=0]