-1

我在 JTable 中有 3 列。一列是可编辑的。其他列不可编辑。可编辑列应显示为绿色,不可编辑列应显示为红色。我已经尝试过DefaultRenderer上课,但它不起作用。请如果有人知道这一点,请帮助我。

4

1 回答 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 回答