繁体   English   中英

jTable无法正确着色行

[英]jTable not coloring row correctly

我有一个问题,基本上我的程序如下所示: 例 事实是,它可以正常工作,应该用绿色将具有“ N”的行着色,但是,如您所见,它第一次加载值时,第一行具有白色位,但是由于某种原因,如果我单击列表即可解决问题,我需要正确地对行进行着色,而用户无需单击列表即可解决问题,这是我的渲染代码:

public class Render extends JTable {

    @Override
    public Component prepareRenderer(TableCellRenderer renderer, int rowIndex, 
            int columnIndex){

        Component componente = super.prepareRenderer(renderer, rowIndex, columnIndex);

        String val = getValueAt(rowIndex, columnIndex).toString();

        if(val.equals("N")){

            componente.setBackground(Color.GREEN);

        }

        return componente;
    }
}

我想我可以使用Repaint(); 在JTable的MouseMoved事件中,但是我认为这不是修复它的正确方法...感谢您的帮助,干杯!

从改变开始

String val = getValueAt(rowIndex, columnIndex).toString();

String val = getValueAt(rowIndex, 3).toString();

这样可以确保无论该单元格代表哪一列,您都在检查适当的列值-这就是为什么前导单元格为白色的原因

您还应该考虑为列值不匹配时提供默认颜色

if (val.equals("N")) {

    componente.setBackground(Color.GREEN);

} else {

    componente.setBackground(getBackground());

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM