首页 > 解决方案 > JComboBox 人口

问题描述

嘿,我正在使用 Netbeans 拖放图形组件。您知道有组件会自动初始化,现在我正在使用以下功能

private void idCBAdder() throws SQLException {          //Adds name in Name/Id ComboBox
    sql=new SqlLinking();        
    ArrayList<String> namesList=sql.getNamesList();        
    String[] names= namesList.toArray(new String[namesList.size()]);
    nameCB=new JComboBox(names);
}

我从使用此函数的上一个类中获得了 namesList

public ArrayList<String> getNamesList() throws SQLException {
    ArrayList<String> names = new ArrayList<String>();
    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        //Connection establishment
        con = DriverManager.getConnection("jdbc:sqlserver://DESKTOP-CU5U75J\\SQLSERVER1;databaseName=GroceryWithJava", "Fateh", "Fateh");

        //Statement Object
        st = con.createStatement();
        result = st.executeQuery("SELECT Name FROM ProductTB");
        while (result.next()) {
            names.add(result.getString("Name"));
        }
    } catch (ClassNotFoundException ex) {
        JOptionPane.showMessageDialog(null, ex.getCause(),"Error",JOptionPane.ERROR_MESSAGE);
    }
    return names;
}

但在这样做之后,我发现我的 JComboBox 没有空,那里没有任何项目。实际上我正在修改产品,添加和删除,所以我需要在每次操作后更新它,这就是我创建一个方法并且我想在每次操作后执行它的原因。

如果我使用以下代码

 private void idCBAdder() throws SQLException {          //Adds name in Name/Id ComboBox
    sql=new SqlLinking();        
    ArrayList<String> namesList=sql.getNamesList();
    for(int i=0;i<namesList.size();i++){
        nameCB.addItem(namesList.get(i));
    }}

我更新了一个产品名称,它与上述所有产品重复,并通过在 JComboBox 中增加它来添加一个产品列表。

标签: javasql-servernetbeans-8

解决方案


推荐阅读