下面是我的JTable
的图片。我的问题是每隔一行的蓝色背景不在第4列。我的表模型和单元格渲染器也在下面。JTable单元格渲染器跳过布尔列
表模型:
public class MyTableModel extends DefaultTableModel {
public int getColumnCount() {
return columnNames.length;
}
public String getColumnName(int column) {
return columnNames[column];
}
public int getRowCount() {
return data.length;
}
public Object getValueAt(int row, int column) {
return data[row][column];
}
public Class getColumnClass(int column) {
return (getValueAt(0, column).getClass());
}
public void setValueAt(Object value, int row, int column) {
data[row][column] = value;
}
public boolean isCellEditable(int row, int column) {
return (column == 3);
}
}
单元格渲染:
private class CalendarRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
public Component getTableCellRendererComponent(JTable table, Object value, boolean selected, boolean focused, int row, int column) {
super.getTableCellRendererComponent(table, value, selected, focused, row, column);
setBackground(new Color(0xFFFFFF));
if (row % 2 == 1) {
setBackground(new Color(0xE8F2FE)); //light blue
}
setBorder(null);
setForeground(Color.black);
return this;
}
}
'Boolean'的默认编辑器是'JCheckBox'单元编辑器,这实际上工作正常。 – MadProgrammer 2013-02-26 04:07:38
Java何时不能“正确”工作?我想知道如何让第四栏也有蓝色背景。 – 2013-02-26 04:08:49
您将需要提供自己的'布尔''TableCellRenderer' – MadProgrammer 2013-02-26 04:09:45