DefaultTableModel сделать ячейку не редактируемой JTable [дубликат]
На этот вопрос уже есть ответ здесь:
Как сделать JTable не редактируемым
7 ответов
У меня есть проект JAVA, и я хочу сделать свой JTable с DefaultTableModel не редактируемым. Я знаю обходной путь, чтобы сделать это, называется:
JTable table = new JTable(...){
public boolean isCellEditable(int row, int column){
return false;
}
};
Как сказал: мне это не нравится. Это не соответствует правилам моего школьного обучения.
Есть ли есть ли способ сделать это? Может быть, есть хороший способ. Надеюсь, что так!
2 ответов:
Вы должны подклассировать не саму JTable, а табличную модель:
DefaultTableModel myModel = new DefaultTableModel(...) { @Override public boolean isCellEditable(int row, int column) { return false; } }Или даже лучше, не используйте DefaultTableModel, а используйте AbstractTableModel, который непосредственно получает информацию в ваших бизнес-объектах, а не копирует всю информацию из бизнес-объектов в векторы.
Выберите Jtable и не забудьте создать табличную модель (DefaultTableModel TableModel)
JTable table_1 = new JTable (TableModel){public boolean isCellEditable(int row,int column) {switch(column){ case 4: // select the cell you want make it not editable return false; default: return true;} }};
Comments