Обновлена ​​выбранная строка JTable из другого класса - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть 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!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...