我有两个内部帧,第一个用于查看,另一个用于数据处理。第一个内框架的数据表与第二个内框架相同。我想要的是在添加第二个jinternalframe的数据后,让第一个jinternalframe更新它的jtable。请参阅第一个框架和第二个框架的附件照片。 从另一个内部帧动态更新内部帧表
而且这是用于第一帧的代码片断:
table1 = new JTable();
table1.setModel(loadTable1());
scrollPane.setViewportView(table1);
}
public static DefaultTableModel loadTable1(){
data = new ModelDB();
tableModel1 = new DefaultTableModel();
tableModel1.addColumn("ID");
tableModel1.addColumn("Allocation");
tableModel1.addColumn("Shipment Date");
tableModel1.addColumn("Buyers");
tableModel1.addColumn("Design");
try{
List<String> id = data.getAllocation().get(0);
List<String> allocation = data.getAllocation().get(1);
List<String> shipdate = data.getAllocation().get(2);
List<String> buyers = data.getAllocation().get(3);
List<String> design = data.getAllocation().get(4);
for(int i=0;i<id.size();i++){
tableModel1.addRow(new Object[]{
id.get(i),allocation.get(i),shipdate.get(i),buyers.get(i),design.get(i)
});
}
}catch(Exception ex){}
return tableModel1;
}
而这是用于所述第二帧的代码片断:
@Override
public void actionPerformed(ActionEvent evt){
data = new ModelDB();
String action = evt.getActionCommand();
String allocation = txtAllocation.getText().toUpperCase();
Date shipdate = (Date) shipDate.getModel().getValue();
String buyers = String.valueOf(model4.getCheckeds()).replaceAll("[\\[\\](){}]", "");
String design = String.valueOf(model.getCheckeds()).replaceAll("[\\[\\](){}]","");
String stylecode = String.valueOf(model2.getCheckeds()).replaceAll("[\\[\\](){}]", "");
String sizes = String.valueOf(model3.getCheckeds()).replaceAll("[\\[\\](){}]", "");
String pcspack = txtPcsPack.getText();
String season = txtSeason.getText().toUpperCase();
String orderqty = txtQtyOrder.getText();
if(action.equals("Add")){
btnSave.setText("Save");
btnSave.setActionCommand("Save");
btnCancel.setEnabled(true);
txtAllocation.setEnabled(true);
txtAllocation.grabFocus();
shipDate.setEnabled(true);
cmbBuyers.setEnabled(true);
cmbDesign.setEnabled(true);
cmbStyleCode.setEnabled(true);
cmbSize.setEnabled(true);
txtPcsPack.setEnabled(true);
txtSeason.setEnabled(true);
txtQtyOrder.setEnabled(true);
}
else if(action.equals("Save")){
if(allocation.isEmpty() || shipdate.equals("") || pcspack.isEmpty() || season.isEmpty() || season.isEmpty() || orderqty.isEmpty() || buyers.isEmpty()||
design.isEmpty() || stylecode.isEmpty() || sizes.isEmpty()){
message.showMessageDialog(null, "Nothing to save");
}
else{
try{
if(data.addAllocation(allocation, shipdate, buyers, design, stylecode, sizes, pcspack, season, orderqty) == true){
message.showMessageDialog(null, "Data have been successfully saved");
}
else{
message.showMessageDialog(null, "Failed to save");
}
}catch(Exception ex){
ex.printStackTrace();
}
table1.setModel(loadTable());
}
btnSave.setText("Add");
btnSave.setActionCommand("Add");
btnCancel.setEnabled(false);
txtAllocation.setEnabled(false);
shipDate.setEnabled(false);
cmbBuyers.setEnabled(false);
cmbDesign.setEnabled(false);
cmbStyleCode.setEnabled(false);
cmbSize.setEnabled(false);
txtPcsPack.setEnabled(false);
txtSeason.setEnabled(false);
txtQtyOrder.setEnabled(false);
txtAllocation.setText("");
model.removeChecks();
model2.removeChecks();
model3.removeChecks();
model4.removeChecks();
txtPcsPack.setText("");
txtSeason.setText("");
txtQtyOrder.setText("");
}
else if(action.equals("Cancel")){
btnSave.setText("Add");
btnSave.setActionCommand("Add");
btnCancel.setEnabled(false);
txtAllocation.setEnabled(false);
shipDate.setEnabled(false);
cmbBuyers.setEnabled(false);
cmbDesign.setEnabled(false);
cmbStyleCode.setEnabled(false);
cmbSize.setEnabled(false);
txtPcsPack.setEnabled(false);
txtSeason.setEnabled(false);
txtQtyOrder.setEnabled(false);
txtAllocation.setText("");
model.removeChecks();
model2.removeChecks();
model3.removeChecks();
model4.removeChecks();
txtPcsPack.setText("");
txtSeason.setText("");
txtQtyOrder.setText("");
}
}
要发布一些莫名的欲望,代码片段和图片,我不确定我们中的任何一个人如何能够理解您的问题,以便我们创建一个连贯的答案。如果您没有及时获得这些信息,请考虑努力为您的代码,您的问题和您的问题提供更多的关注,包括创建和发布有效的[mcve]并询问非常具体和可回答的问题。祝你好运。 –
................你好? –
请注意,两个jinternalframes在两个不同的类... – SilverRay