我有一个数据库网格,显示从数据库中获取数据的数据,这里是:
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)
设置整个网格不可编辑,但是如何设置仅消费列可编辑而其余部分不可编辑?
答案 0 :(得分:1)
先生,这是不可行的,因为该列中的值和单元格数是动态的。
您不必为列中的每个单元格返回false
。由于您希望 last 列可编辑,因此只需为该列索引返回true
。
@Override
public boolean isCellEditable(int row, int col) {
return col == getColumnCount() - 1;
}
答案 1 :(得分:0)
假设(因为我没有其他选择)您正在使用JTable
,禁用单元格的方法是覆盖AbstractTableModel并覆盖isCellEditable
方法。由于您希望在整个列上进行此操作,因此只需对该列中的每个单元格返回false。