繁体   English   中英

JTable的一列中的颜色单元格

[英]Color cells in a column in a JTable

我目前有一个由7列和许多行数据组成的JTable。

如何为第七列​​中的每个单元格上色? 我想根据单元内的数据进行着色。

因此,如果第7列中的一个单元格的值小于0,那么我想将颜色设为红色,或者如果第7列中的一个单元格的值大于0,则将其颜色设为绿色等。

谢谢

您可以使用TableCellRenderer为表中的单个单元格创建这些自定义样式。 教程将详细解释。 在该页面上是使用彩色渲染器的示例,这可能是您需要的开始。

初始化表对象时,请重写prepareRenderer()方法,将特定的条件放入相应的颜色中进行更改,然后颜色更改将在您定义的应用程序中反映出来。 假设您有一个全局JTable变量table并让model为DefaultTableModel实例:

table = new JTable( model )
{
    public Component prepareRenderer ( TableCellRenderer r, int row, int col )
    {
        Component comp = super.prepareRenderer( r, row, col );
        if ( col == 6 && !isCellSelected( row, col ) )
        {
            if ( table.getValueAt( row, col ) < 0 )
                comp.setBackground( Color.RED );
            else
               comp.setBackground( Color.GREEN );
        }  
        return comp;
    }
};

上面的代码正在检查col == 6因为您要给第7列着色,该列对应于列索引6(从0开始)。 在内部if语句中,它将检查单元格值并相应地更改单元格背景色。

暂无
暂无

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

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