Я пытаюсь найти способ обновить свои ячейки прямым вводом. С моей reshearch, все, кажется, говорят, что вы должны использоватьНе удается обновить ячейки из JTable
myJTable.fireTableCellUpdated()
Althought, он продолжает спрашивать меня бросить myJTable -> Не может быть литыми на AbstractTableModel, который что, от того, что я понял, необходим.
Вот мой текущий код таблицы, если это может поможет:
myJTable= new JTable();
myJTable.setModel(new DefaultTableModel(
new Object[][] {
{null, null, null},
},
new String[] {
"Thing#1", "Thing#2", "Thing#3"
}
));
myJTable.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
myJTable.fireTableCellUpdated(e.getFirstRow(), e.getColumn());
myJTable.repaint(tblCG.getCellRect(e.getFirstRow(), e.getColumn(), false));
myJTable.putClientProperty("terminatedEditOnFocusLost", true);
}
});
Как это возможно для меня, чтобы сохранить ДАННЫЕ из ячейки, который был обновлен путем прямого ввода от пользователя? Спасибо!
'myJTable.fireTableCellUpdated()' - Нет, никогда! Вы должны просто использовать 'JTable # setValueAt' или' TableModel # setValueAt', и если 'TableModel' настроен правильно, он должен автоматически уведомлять таблицу. Вы никогда не должны вызывать методы пожара событий из контекста класса – MadProgrammer
@MadProgrammer Итак, если я следую вашей логике, я должен сделать следующее: 'myJTable.setValueAt (??? getCellValue ???, e.getFirstRow(), e. getColumn()); ' – MammouthQc