java - JComboBox 中的 MySQL 表值

标签 java jdbc jcombobox

我设计了一个带有MySQL表的swing界面。我以某种方式放置两个组合框,当选择第一个组合框值(品牌名称)时,第二个组合框值(所选品牌下的可用项目)将通过 mysql 查询加载。我的代码是...

try{
    String url = "jdbc:mysql://localhost:3306/databasename";
    String login = "root"; String password = ""; Connection con = DriverManager.getConnection(url, login, password);
    try{
        comboBox1 = new JComboBox(); comboBox1.setEditable(false);
        comboBox1.addItem("- - -");
        Statement stmt1=null;
        String query1 = "SELECT brand FROM brands";
        stmt1 = con.createStatement();
        ResultSet rs1 = stmt1.executeQuery(query1);
        while(rs1.next()) {comboBox1.addItem(rs1.getString(1));}
        comboBox2 = new JComboBox(); comboBox2.setEditable(false);
        comboBox1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event){
                String comboBox1Selected=comboBox1.getSelectedItem().toString();
                try{
                    Statement stmt2=null;
                    String query2 = "SELECT item FROM "+comboBox1Selected+"";
                    stmt2 = con.createStatement();
                    ResultSet rs2 = stmt2.executeQuery(query2);
                    while(rs2.next()) {comboBox2.addItem(rs2.getString(1));}
                }
                catch (SQLException ex1) {JOptionPane.showMessageDialog(null,"Failed to Item-List..!"); ex1.printStackTrace(); return;}
            }
         });
    }
    catch (SQLException ex2) {JOptionPane.showMessageDialog(null,"Failed to Brand-List..!"); ex2.printStackTrace(); return;}
}
catch (SQLException ex3) {ex3.printStackTrace(); JOptionPane.showMessageDialog(null,"Unable to Connect..!"); return;}

问题是,即使组合框正常工作,如果我从第一个组合框中选择另一个选项,第二个组合框不会避免“旧值”(它们与新值一起出现)。

可能是什么原因..?任何人都可以解释一下..? 提前致谢。

最佳答案

在此处添加新项目之前调用 comboBox2.removeAllItems() while(rs2.next()) {comboBox2.addItem(rs2.getString(1));}

关于java - JComboBox 中的 MySQL 表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27120555/

相关文章:

java - 如何使用 SWT 创建带有按钮的单元格?

java - H2 数据库上未执行 Sql 查询

java - 为什么 Java 的 Date.after() 在日期实际上更早时返回 'true'?

java - Teradata CLOB 批处理对 JDBC 没有用吗?

java - 转换对象时 event.getItem() 和comboBox.getSelectedItem() 之间有什么区别

java - JComboBox 中的问题

java - 用 java 或 c# 表示 ampl 模型代码?

java - 我被“比较方法违反了它的一般契约(Contract)!”击中。创建/添加超过一定数量的对象时发生异常

java - 在组合框中创建选项作为可用串行端口

java - 使用 isPresent 方法在 Java8 中列出过滤器