#java #swing
#java #swing
Вопрос:
У меня есть метод, который используется для хранения отредактированных значений в БД.
public Object getCellEditorValue() {
String outputToCell = ((JTextField) component).getText();
panelsign.updateAllergicReactions(outputToCell, row);
return outputToCell;
}
Этот метод вызывается этим методом в JTable.class (предварительно определенный класс Java).
/**
* Invoked when editing is finished. The changes are saved and the
* editor is discarded.
* <p>
* Application code will not use these methods explicitly, they
* are used internally by JTable.
*
* @param e the event received
* @see CellEditorListener
*/
public void editingStopped(ChangeEvent e) {
// Take in the new value
TableCellEditor editor = getCellEditor();
if (editor != null) {
Object value = editor.getCellEditorValue();
setValueAt(value, editingRow, editingColumn);
removeEditor();
}
}
Первый упомянутый метод вызывается, если я просто щелкаю строку в JTable
. Но я хочу, чтобы он был вызван после того, как я завершу его редактирование. Или как после его редактирования, а затем перейдите к следующему столбцу, чтобы отредактировать этот.
Ответ №1:
Вы не должны играть с редактором ячеек.
Если вы хотите знать, когда данные были изменены в TableModel, вы можете либо:
- Переопределите
setValueAt(...)
метод вашей TableModel для обновления базы данных или - Добавьте
TableModelListener
вTableModel
. Событие будет генерироваться всякий раз, когда производятся обновления табличной модели.
Комментарии:
1. Рад, что это помогло. Не забудьте «принять» ответ, нажав на галочку (рядом с ответом), чтобы люди знали, что проблема решена.