0

我有一个数据库网格,显示从数据库中获取它的数据,这里是:

String[] fields={"Comp_Code_No","Building_No","Flat_No","Current_Reading","Previous_Reading","Consumption"};
editConsumptionGrid=new UIGrid("Select Comp_Code_No,Building_No,Flat_No,Current_Reading,Previous_Reading,Consumption from Consumption.empty_consumption",fields, MainApp.initDB);
editConsumptionGrid.getComponent().setPreferredSize(new Dimension(300,200));
gbc.gridx=0;
gbc.gridy=0;
gbc.ipadx=135;
gbc.ipady=70;
gbc.weightx=5;
gbc.gridwidth=0;
gbc.fill=GridBagConstraints.HORIZONTAL;
gridPanel.add(editConsumptionGrid.getComponent(), gbc);

我们在这里做的是我们在第一个参数中传递查询,第二个是数据库表中的列名,第三个是数据库连接对象,它工作正常,现在我想做的是我只想设置消费列dataGrid 即editCinsumptionGrid在这种情况下是可编辑的。我可以通过 将整个网格设置为不可编辑setEditable(false),但是如何仅将消耗列设置为可编辑而其余部分不可编辑?

4

2 回答 2

1

先生,这是不可行的,因为该列中的值和单元格数量是动态的。

您不必为列中false每个单元格返回。由于您希望最后一列可编辑,因此只需返回true该列索引。

@Override
public boolean isCellEditable(int row, int col) {
    return col == getColumnCount() - 1;
}
于 2013-05-31T11:04:13.303 回答
0

假设(因为我别无选择)您正在使用 a JTable,禁用单元格的方法是覆盖AbstractTableModel并覆盖该isCellEditable方法。由于您希望在整列上使用它,因此只需在该列中的每个单元格上返回 false。

于 2013-05-31T06:49:49.250 回答