我在 JTable 中有 3 列。一列是可编辑的。其他列不可编辑。可编辑列应显示为绿色,不可编辑列应显示为红色。我已经尝试过DefaultRenderer
上课,但它不起作用。请如果有人知道这一点,请帮助我。
问问题
1358 次
1 回答
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;
}
};
或者您可以DefaultTableCellRenderer
像以下2一样进行类覆盖
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;
}
}
于 2011-08-23T04:33:49.153 回答