将jCombobox与MySQL表同步

我使用NetBeans GUI-Designer创建了一个数据库应用程序。

使用Comboboxes的GUI(绑定到MySQL数据库表用户和团队): Combobox1和2选择用户和/或团队

on Button new – > jDialog – 执行查询以在数据库中存储新用户: jDialog与文本字段,保存和取消

问题:Combobox在程序启动时更新,但在运行程序时没有。

问题:是否可以在保存新用户或团队时直接更新combobox中的条目? 我怎么能实现这个?

编辑:这是我在点击JDialogsaveButton时所做的事情:

 int k=st.executeUpdate( "INSERT INTO User (username) " + " VALUES ('"+ name + "')"); //Here I'd like to update the jComboBox1 directly if possible Outerclass.jComboBox1...; JOptionPane.showMessageDialog(null, "User is successfully saved");' 

在数据库中插入新用户时,只需更新组件的ComboBoxModel 。 如果这没有帮助,请提供显示问题的sscce 。

附录:给出了JComboBox的参考,

 private final JComboBox combo = new JComboBox(); 

您可以更新其模型,如下所示。 此示例将name添加到列表的开头,但SortedComboBoxModel是一个吸引人的替代方案。

 DefaultComboBoxModel model = (DefaultComboBoxModel) combo.getModel(); model.insertElementAt(name, 0); 

附录:更简单地说,使用combo本身可用的方法,

 combo.insertElementAt(name, 0); 

我遇到了类似的问题:如果你在数据库中输入任何东西,应该反映在JComboBox中,那么你就不能改变那个combobox的值。 如果你可以直接在JComboBox上添加东西,那就太棒了,但是你必须从中获取数据,从中创建一个新的ComboBoxModel,然后将你的JComboBox设置为那个新模型。

在这里,我使用DefaultComboBoxModel,它可以采用对象数组(通常是字符串)或向量。 如果使用向量来表示基础数据模型,则更容易,因为向量是动态数据结构。

我的代码:

 Vector s = new Vector(); try { // I'm using prepared statements, get the ResultSet however you like ResultSet rs = myPreparedStatement.executeQuery(); while ( rs.next() ) { // Change "1" to whatever column holds your data s.add(rs.getString(1)); } } catch (SQLException ex) { ex.printStackTrace(); // or whatever } DefaultComboBoxModel jcbModel = new DefaultComboBoxModel(s); jcb.setModel(jcbModel); 

编辑:请记住,ResultSet列是1索引的,而不是0索引! 每次都得到我。