我在JTable中有3列。一列是可编辑的。其他列不可编辑。可编辑列应显示为绿色,不可编辑列应为红色。我曾尝试使用DefaultRenderer
类,但它不起作用。如果有人知道,请帮助我。
答案 0 :(得分:2)
有很多方法可以做到这一点。以下 1 会将第1列渲染为灰色。
JTable table = new JTable() {
public Component prepareRenderer(TableCellRenderer renderer,
int rowIndex, int vColIndex) {
Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);
if (vColIndex == 0) {//if first column
c.setBackground(Color.red);
} else {
c.setBackground(Color.green);
}
return c;
}
};
或者您可以像 2
那样覆盖DefaultTableCellRenderer
类
public class CustomTableCellRenderer extends DefaultTableCellRenderer
{
public Component getTableCellRendererComponent (JTable table, Object obj,
boolean isSelected, boolean hasFocus, int row, int column){
Component cell = super.getTableCellRendererComponent(table, obj,
isSelected, hasFocus, row, column);
if (column == 0){
cell.setBackground(Color.red);
}
else{
cell.setBackground(Color.green);
}
return cell;
}
}