java设置表中特定单元格的颜色

java设置表中特定单元格的颜色,java,swing,jtable,static-variables,tablecellrenderer,Java,Swing,Jtable,Static Variables,Tablecellrenderer,如果一列的单元格中的值大于零,我必须给它上色。我知道,已经有这样的问题了,但尽管搜索了几个小时,我还是找不到有效的解决方案。每件事都给我一些错误。解决方案,给我最少的错误是: public class MyRenderer extends DefaultTableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected

如果一列的单元格中的值大于零,我必须给它上色。我知道,已经有这样的问题了,但尽管搜索了几个小时,我还是找不到有效的解决方案。每件事都给我一些错误。解决方案,给我最少的错误是:

public class MyRenderer extends DefaultTableCellRenderer  
{ 

    public Component getTableCellRendererComponent(JTable table, Object value, boolean   isSelected, boolean hasFocus, int row, int column) 
{ 
    Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    c.setForeground(Color.RED);
    double values = Double.parseDouble(c.getInputContext().toString());
    if(column == 2){
        if(values > 0){
            c.setForeground(Color.GREEN);
        }
    }
    return c; 
} 

}
然而,当我得到这样的参考时:

MyRenderer.getTableCellRendererComponent(table, "ok", true, true, 2, 2);
它给了我这个错误:

Cannot make a static reference to the non-static method getTableCellRendererComponent(JTable, Object, boolean, boolean, int, int) from the type bitc.MyRenderer
但是当这个方法是静态的时,这个方法给了我这个错误…:

This static method cannot hide the instance method from DefaultTableCellRenderer

我不知道如何绕过它。

我想知道您何时尝试调用
MyRenderer.GetTableCellRenderComponent(表“ok”,true,true,2,2)

通常应该这样做:

table.setDefaultRenderer(Double.class, new MyRenderer());


现在我遇到了这个错误:
没有bitc类型的封闭实例可访问。必须使用bitc类型的封闭实例(例如x.new A(),其中x是bitc的实例)来限定分配。
(我的英语不太好,很抱歉出错,我可能会误解一些内容),但您知道它在抱怨
bitc
?我如何知道在您的上下文中,没有代码的情况下,
bitc
是什么?猜测一下:MyRenderer是一个内部类,您是在静态上下文中使用它的吗?在这种情况下,您可以将其设置为一个
静态
类。为了获得更好的帮助,请尽快发布一个SSCCE/MCVE,简短、可运行、可编译,并在局部变量中为JTable/XxxTbaleModel硬编码值
table.getColumnModel().getColumn(columnIndex).setCellRenderer(new MyRenderer());