2015-07-07 2 views
0

Я пытаюсь изменить выбранный столбец в выбранной строке с помощью кнопки мыши, как этогоJTable редактирование контента

contactTable.getModel().setValueAt(
    contactTable.getValueAt(contactTable.getSelectedRow(), 
    contactTable.getSelectedColumn()), 
    contactTable.getSelectedRow(), 
    contactTable.getSelectedColumn() 
); 

но перед сохранением нажмите кнопку, если я не щелкну в другой колонке редактировании не работаю , так в чем причина? и как я могу это исправить?

ответ

1

Отредактированное значение все еще находится в редакторе ячейки, а не в TableModel. Значение автоматически сохраняется, если вы переместитесь в другую ячейку в таблице.

Однако, если вы нажмете на кнопку, вы должны вручную сохранить данные. Это может быть сделано одним из двух способов:

  1. В ActionListener кнопки вы можете вручную вызвать метод stopCellEditing() редакторов
  2. Добавьте свойство к столу, чтобы сохранить изменения, когда таблица теряет фокус.

Отъезд Table Stop Editing для получения дополнительной информации и примеров этих двух подходов.

Смежные вопросы