当数据库中的表在java中更新时如何立即更新jcombobox
Posted
技术标签:
【中文标题】当数据库中的表在java中更新时如何立即更新jcombobox【英文标题】:how to update the jcombobox immediately when the table in database get updated in java 【发布时间】:2014-05-24 19:49:03 【问题描述】:我正在开发 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();
我浏览了以下链接,但没有得到可行的解决方案:
Immediate update to JCombobox in Java
Synchronize a jCombobox with a mysql Table
【问题讨论】:
【参考方案1】:JComboBox comboBoxVenderName = new JComboBox();
当您要刷新数据时,不要创建新的组合框。
相反,您应该创建一个新的 DefaultComboBoxModel 并将数据添加到模型中。然后使用以下命令更新现有组合框中的数据:
comboBox.setModel( the updated model );
另外,不要使用空布局!!!您不应该使用 setBounds() 方法。 Swing 旨在与布局管理器一起使用。
【讨论】:
你能简单解释一下吗?我已经尝试使用DefaultComboBoxModel
作为第一个链接的参考。但我没有得到想要的结果。请帮助
我确实简要解释了。您将数据添加到模型,然后将模型添加到组合框。发布您的SSCCE(不使用数据库)来证明您的问题。那就是创建一个简单的框架,其中包含一个加载了数据的组合框和一个“刷新”按钮。刷新按钮将简单地将硬编码数据加载到模型中,然后更新组合框。证明基本概念有效。一旦你得到这个刷新方法,你就可以使用你的数据库使方法动态化。以上是关于当数据库中的表在java中更新时如何立即更新jcombobox的主要内容,如果未能解决你的问题,请参考以下文章