это не сработало эффективно, потому что мне нужно щелкнуть строку, чтобы получить сводку.
Модель обновляется только тогда, когда ячейка теряет фокус, потому что тогдазначение, которое вы вводите, сохраняется в модели.Это потому, что вы можете начать набирать цифры, а затем использовать клавишу «escape» для отмены редактирования.
Если вы действительно хотите обновить итоговую сумму, когда пользователь вводит данные в редактор, тогда вместо использования TableModelListener,вам нужно будет добавить DocumentListener
в текстовое поле, используемое редактором:
DefaultCellEditor editor = (DefaultCellEditor)table.getDefaultEditor(Integer.class);
JTextField textField = (JTextField)editor.getComponent();
textField.getDocument().addDocumentListener(...);
См. раздел из учебника по Swing по Прослушивание изменений в документе для получения дополнительной информациии примеры.
Конечно, если вы сделаете это, вам также нужно будет обработать случай, когда редактор отменяется.Поэтому вам также необходимо добавить PropertyChangeListener
к JTable
и прослушать tableCellEditor
изменение свойства.