У меня есть JTable
в главной форме, которую я хотел бы разрешить редактировать определенные строки. Я создал кнопку редактирования во всплывающем меню, которое создает новое окно, в котором отображаются данные из строки, выбранной в новом окне JFrame
, с кнопкой Update
, для которой я хочу обновить выбранную строку в моей таблице на основная форма.
У меня есть пользовательский TableModel
, который принимает сложный тип SaleItem
, у меня есть метод, который создаст новый SaleItem
на основе данных, обрабатываемых во всплывающем фрейме, но я не уверен, как я могу отправить вернуться, чтобы обновить выбранную строку моей таблицы.
Вот где я создаю новый кадр:
private void jMenuEditActionPerformed(java.awt.event.ActionEvent evt) {
int index = jTable1.getSelectedRow();
SalesTableModel model = (SalesTableModel) jTable1.getModel();
NewJFrameEdit frame = new NewJFrameEdit(model.getRow(index));
frame.setVisible(true);
}
Вот новое окно соответствующих методов:
public NewJFrameEdit(SaleItem editableItem) {
initComponents();
jDateChooserInstallDateUpdater.setDate(editableItem.postDate);
jTextFieldWorkOrderUpdater.setText(editableItem.workOrderNumber);
chkUpdateTv.setSelected(editableItem.newTv);
chkUpdateInt.setSelected(editableItem.newInt);
chkUpdatePh.setSelected(editableItem.newPh);
editedItem = editableItem;
}
private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}
public SaleItem getUpdatedItem(){
return new SaleItem(
editedItem.dateAdded,
jDateChooserInstallDateUpdater.getDate(),
editedItem.agentName,
jTextFieldWorkOrderUpdater.getText(),
chkUpdateInt.isSelected(),
chkUpdateTv.isSelected(),
chkUpdatePh.isSelected(),
false
);
}
Решено!
Мне пришлось передать мою табличную модель, когда я вызвал свой конструктор NewJFrameEdit!