我的代码遇到问题,无法解决。
我想做的是用来自SQLlite的数据填充jComboBox,然后获取所选项目的索引,以便我可以将其用于进一步的活动。 我正在使用数组列表填充jComboBox。
这是数组列表的代码:
public ArrayList<Battery> batteries() throws Exception {
ArrayList<Battery> batteriesList = new ArrayList();
try {
Statement stmt = null;
Connection conn = null;
Battery currentBattery = null;
String url = "jdbc:sqlite:batteries.db";
conn = DriverManager.getConnection(url);
String sql = "Select * from batteries";
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
currentBattery = new Battery(rs.getString("companyName"), rs.getString("batteryType"), rs.getFloat("batteryVolt"), rs.getFloat("batteryAmp"));
batteriesList.add(currentBattery);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
return batteriesList;
}
这是我用于填充jComboBox的代码:
public void showBatteries() {
ArrayList<Battery> list = null;
try {
list = batteries();
for (int i = 0; i < list.size(); i++) {
jComboBox_BatteryChooser.addItem(list.get(i).getCompanyName() + " " + list.get(i).getBatteryModel());
}
} catch (Exception ex) {
Logger.getLogger(mainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
我要使用以下方法来获取所选项目的索引:
public void fillData(){
System.out.println("Index of item: "+jComboBox_BatteryChooser.getSelectedIndex());
}
但是,函数fillData()的结果始终始终为0。 您能否指出正确的方向或帮助我解决此问题? 非常感谢:)