DefaultTableCellRenderer cellRender = new DefaultTableCellRenderer();
for(int i = 0; i < tblPackage.getRowCount(); i++)
{
if("ACTIVE".equals(tblPackage.getModel().getValueAt(i, 3).toString()))
{
cellRender.setForeground(Color.GREEN);
}
}
我的表中有 4 列...如果数据的第 4 列等于“ACTIVE”字样,它将变为绿色...我该怎么做??我的逻辑有问题吗??
最佳答案
您应该覆盖 DefaultTableCellRenderer
的 getTableCellRendererComponent
:
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column)
{
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(table.getColumnModel().getColumn(column).getIdentifier()
.equals(your_4th_column_identifier)) // or use getColumnAt(4)
{
if(value.toString().equals("ACTIVE"))
{
c.setBackground(Color.GREEN);
}
}
return c;
}
关于java - 更改 Jtable 中特定单元格的字体颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21374629/