我正在研究java应用程序。我在应用程序中有两个框架。我想将在一个框架中输入的数据反映到另一个框架运行时。
如上所示,在按下供应商窗口中的提交按钮时,在购买窗口中的组合框应立即更新。 我应该做出哪些必要的改变?
这是我的frame1代码,用于在数据库中存储数据:
public void btnSubmitAction(ActionEvent e){
String custId,custNm;
if(txtSupplierID.getText().equals("") || txtSupplierName.getText().equals("") )
{
System.out.println("Please enter valid information!!!!!!!");
}
else
{
try{
setConnectin();
String str = "Insert into SupplierMasterTable values(?,?)";
pstmt = conn.prepareStatement(str);
pstmt.setString(1,txtSupplierID.getText());
pstmt.setString(2, txtSupplierName.getText());
int x = pstmt.executeUpdate();
System.out.println("Supplier registered successfully");
txtSupplierID.setText("");
txtSupplierName.setText("");
conn.close();
}catch(Exception e1){
e1.printStackTrace();
}
}
}
这是我从frame2获取数据的代码:
JComboBox comboBoxVenderName = new JComboBox();
comboBoxVenderName.setFont(new Font("Times New Roman", Font.PLAIN, 15));
comboBoxVenderName.setBounds(144, 88, 137, 21);
panel.add(comboBoxVenderName);
try{
setConnectin();
String str = "select * from SupplierMasterTable";
stmt = conn.createStatement();
rs = stmt.executeQuery(str);
while(rs.next())
{
comboBoxVenderName.addItem(rs.getString("Supplier_Name"));
}
conn.close();
}catch(Exception e2){
e2.printStackTrace();
}
我已经通过以下链接,但没有得到可行的解决方案:
答案 0 :(得分:2)
JComboBox comboBoxVenderName = new JComboBox();
如果要刷新数据,请不要创建新的组合框。
相反,您应该创建一个新的DefaultComboBoxModel并将数据添加到模型中。然后使用以下命令更新现有组合框中的数据:
comboBox.setModel( the updated model );
另外,不要使用空布局!您不应该使用setBounds()方法。 Swing旨在与布局管理器一起使用。