【发布时间】:2019-02-04 16:33:53
【问题描述】:
我有 3 个 jComboBox。第一个是房间类型。当我在第一个 jComboBox 上选择房间类型时,它必须在第二个 jComboBox 中显示所有可用房间,但是当我选择其中一个房间类型时,会弹出一个错误。p
这是在第一个 jComboBox 上执行的操作代码
第一个 jComboBox actionperformed*
if(jComboBox13.getSelectedItem().toString().equals("SELECT")){
}else{
try{
String like = jComboBox13.getSelectedItem().toString();
String sql = "Select * From Room_Master\n" +
"inner join Room_Type on Room_Master.Room_Type_ID=Room_Type.Room_Type_ID\n" +
"where Room_Type = '"+like+"'";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
jComboBox14.removeAllItems();
jComboBox14.addItem("SELECT");
while(rs.next()){
String add1 = rs.getString("Room_No.");
jComboBox14.addItem(add1);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}finally {
try {
rs.close();
pst.close();
}catch(Exception e){
}
}
}
第二个 jComboBox actionperformed
if(jComboBox14.getSelectedItem().toString().equals("SELECT") | jComboBox14.getSelectedItem().toString().isEmpty()){
}else{
try{
String like = jComboBox14.getSelectedItem().toString();
String sql = "Select * from Bed_Master\n" +
"inner join Room_Master on Bed_Master.Room_ID=Room_Master.Room_ID\n" +
"where [Room_No.] = '"+like+"'";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
jComboBox15.removeAllItems();
jComboBox15.addItem("SELECT");
while(rs.next()){
String add1 = rs.getString("Bed_No.");
jComboBox15.addItem(add1);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
e.printStackTrace();
}finally {
try {
rs.close();
pst.close();
}catch(Exception e){
}
}
}
但是在我选择另一个房间类型后它会起作用 我试图删除“combobox.removeAllItems();” 但它会继续添加 jCombobox 中的所有项目 将近 1 周的时间试图弄清楚有人可以帮忙
【问题讨论】:
-
您似乎收到了
NullPointerException。请将该异常的堆栈跟踪添加到问题中。 (要获得该堆栈跟踪,您必须将e.printStackTrace();添加到代码中的第一个catch块。) -
我会从
rs.getString("Room_No.");中删除. -
你能帮我解决这个问题吗?我该怎么办?
-
嗯?我刚刚告诉过你。
-
如果我删除它,我如何将项目放在 jComboBox 上?