【发布时间】:2018-12-20 11:50:33
【问题描述】:
我有一个 6 列的 JTable。在表格中添加一行时,我需要为第一行的最后一个单元格添加黑色。第二行的红色。相应的颜色来自不同的方法。这是我的自定义表格单元格渲染器。
class CustomRenderer extends DefaultTableCellRenderer
{
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column, Color color)
{
JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
label.setBackground(color);
return label;
}
}
这是我在添加表格行时使用它的方式。
private void addTableRow(String type, String name, String rank, String notes, String location, Color color)
{
boolean isExport = isExportEnable();
tableModel.addRow(new Object[]
{
type,
name,
rank,
notes,
location,
isExport
}
);
for (int i = 0; i < tableModel.getRowCount(); ++i)
{
JTable.getColumnModel().getColumn(6).setCellRenderer((TableCellRenderer) new CustomRenderer().getTableCellRendererComponent(null, null, false, false, i, 6, color));
}
}
当我添加第一行时,它会得到正确的颜色。但是当我添加第二行时,第一种和第二种颜色的单元格都填充了第二种颜色。我怎样才能得到确切的行。 其实我想要的是在添加一行的同时用不同的颜色填充每一行的最后一个单元格。
【问题讨论】:
-
“虽然我早些时候发布了这个问题,但我没有得到确切的答案。” 是什么让您认为这个问题会得到不同的答案?它在某些方面有所不同吗?无论哪种方式,您都应该edit 一个现有问题,而不是开始一个新问题。
标签: java swing jtable tablecellrenderer