[英]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.