Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取前景单元格jtable_Java_Swing - Fatal编程技术网

Java 获取前景单元格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

我有这样的记录

我使用JTable.prepareRenderer(…)方法

但是我得到了前景,它的颜色不对,这是我的代码,所以怎么了

JTable代码:

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]