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());