【问题标题】:Change JTable row foreground更改 JTable 行前景
【发布时间】:2013-10-06 21:25:11
【问题描述】:

我正在尝试将前景着色为红色,当某个时间处于某种条件时,但正在绘制所有行的前景(应该只有七行)。我做错了什么?代码如下:

class RedRenderer extends DefaultTableCellRenderer{                 
     @Override  
     public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) {  
                        super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);                                 

          BigDecimal time=new BigDecimal(jTable.getModel().getValueAt(row, 17).toString());
        if(time.compareTo(new BigDecimal(2))<=0){
                setForeground(Color.red);  
                setBackground(Color.white);
        }else{  
                setBackground(null);  
        }

   return this;  
     }                                  
}

【问题讨论】:

    标签: java swing jtable renderer tablecellrenderer


    【解决方案1】:

    如果当前行不符合您的条件,您是否尝试过将前景色显式设置为不同的颜色?

    【讨论】:

    • 你说的完全正确!它看起来像一个颜色记忆。我只放了 setForeground(null);在其他地方,它工作正常!
    • 是的; TableCellRenderers 被用作“橡皮图章”——除非您更改它们,否则用于渲染的标签属性不会更改(文本本身除外)。
    猜你喜欢
    • 2012-07-15
    • 2011-04-21
    • 2014-06-09
    • 2015-10-24
    • 2020-07-07
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多