我的主表单上有一个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构造函数时,我必须传递表模型!