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