JTable中列中的颜色单元格
问题描述:
我目前有一个由7列和许多行数据组成的JTable。JTable中列中的颜色单元格
我该如何去关于第7列中每个单元的颜色?我想根据单元格内的数据进行着色。
因此,如果在第7列的单元格之一是说低于0,那么我想红色或如果在第7列的单元格之一大于0,则颜色绿等
谢谢您
答
覆盖,当你初始化表对象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语句中,它正在检查单元值并相应地更改单元格背景颜色。
@deporter Ehhh ..(耸了耸肩)我只是移动到下一个问题。 – 2012-03-03 22:30:30
@AndrewThompson你是对的。 – Juvanis 2012-03-03 22:32:23
对不起,我刚刚学会了如何并将从现在开始。 – 2012-03-10 21:13:23