2013-05-31 6 views
0

У меня есть сетки баз данных, которая показывает данные выборку из базы данных, здесь:Отключение конкретного столбца DataGrid

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 в этом случае, редактируемый. Я могу установить целую сетку uneditable на setEditable(false), но как установить только столбца потребления, редактируемую и остальную часть неотредактируемой?

+0

Какой компонент поворота вы используете? Это не очень полезный фрагмент кода. –

+0

SSDataGrid использование. –

ответ

0

Предполагая, (потому что у меня нет другого выбора), которые вы используете JTable, способ отключить ячейку, чтобы переопределить AbstractTableModel и переопределить метод isCellEditable. Поскольку вы хотите это на целой колонке, просто верните false в каждую ячейку в этом столбце.

+0

его невозможно, поскольку значения и число ячеек в этом столбце являются динамическими, так как они поступают из базы данных. –

1

Это невозможно, поскольку значения и число ячеек в этом столбце являются динамическими.

Вам не придется возвращать false для каждой ячейки в столбце. Так как вы хотите, чтобы последний столбец был доступен для редактирования, просто верните true для этого индекса столбца.

@Override 
public boolean isCellEditable(int row, int col) { 
    return col == getColumnCount() - 1; 
} 
Смежные вопросы