JComboBox人口

时间:2018-08-14 10:58:21

标签: java sql-server netbeans-8

嘿,我正在使用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中增加它来添加一个产品列表。

0 个答案:

没有答案