【问题标题】:How to pass data from one JComboBox to an SQL statement that will terming the values of the second JComboBox?如何将数据从一个 JComboBox 传递到一条 SQL 语句,该语句将称为第二个 JComboBox 的值?
【发布时间】:2015-05-28 10:04:34
【问题描述】:
private void fillCombo(){
    try {
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/MTD","root","");
        PreparedStatement ps = con.prepareStatement("Select * from sa where municipalities ='"  + municipality.getSelectedItem().toString()+ "'");
        ResultSet rs = ps.executeQuery();

        while(rs.next()){
            String mun = rs.getString("Province");
            municipality.addItem(mun);
        }
    }
    catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }

我有两个从数据库中获取值的组合框。第一个组合 (province) 来自一个表格,其中有一列是省份列表。所以在province.itemchangedstate 上,我希望它设置与combo1 (province) 选择的省份相关的combo2 (municipalities) 的值。

我是 java 新手,一直坚持下去,不知道如何继续。有人可以帮忙吗?

【问题讨论】:

  • “我是 java 新手,一直坚持下去,不知道如何继续前进。” 坚持到底是什么?就目前而言,这个问题要么是“不清楚你在问什么”,要么是“太宽泛”。请缩小范围,展示您的尝试,并提出更具体的问题。
  • @Andrew 我只设法填充了第一个组合以获取省份列表。我现在想将用户选择省的值传递给一个 sql 查询,该查询将填充第二个组合,其中仅包含在给定用户选择的省内的城市。
  • 为了尽快获得更好的帮助,请发布MCVE(最小完整可验证示例)或SSCCE(简短、自包含、正确示例)。硬编码一些数据来替换数据库(比如 2 个省和 3 个直辖市应该这样做)。
  • 假设用户在第一个组合中选择省 a,然后应将 a 传递给 sql 查询(从表中全选,其中省 =a)。然后查询的结果应该填充组合 2
  • .. 你为什么要重复这个?我再重复一遍,更换数据库部件并发布 MCVE。

标签: java database swing prepared-statement jcombobox


【解决方案1】:

据我所知,您的要求是在选择其他组合框的基础上填充一个组合框。 像

这个示例代码可能适合你。

private void populateDropDownOfEnum(){
        EncDecImageFrame encDecImageFrame = new EncDecImageFrame();

        jComboBox1.setEditable(true);
        String[] jComboBox1Values = getListOfAllEnumNames();
        if (jComboBox1Values != null && jComboBox1Values.length != 0) {
            jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(jComboBox1Values));
        }

        Object item = jComboBox1.getSelectedItem();
        jComboBox2.removeAllItems();
        jComboBox2.setEditable(true);
        String[] enumValuesByEnumNames = getListOfAllEnumValues(
                item.toString(), artifcatoryPathOfJar.getText());
        jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(
                enumValuesByEnumNames));

        jComboBox1.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                Object item = jComboBox1.getSelectedItem();
                jComboBox2.removeAllItems();
                jComboBox2.setEditable(true);
                String[] enumValuesByEnumNames = getListOfAllEnumValues(
                        item.toString(), artifcatoryPathOfJar.getText());
                jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(
                        enumValuesByEnumNames));

            }
        });

【讨论】:

  • 我如何修改代码以从数据库中选择值
猜你喜欢
  • 1970-01-01
  • 2021-08-04
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 2019-11-28
  • 1970-01-01
  • 1970-01-01
  • 2017-02-17
相关资源
最近更新 更多