2017-04-04 60 views
1

我有8个组合框...第一个组合框是客户端和其余7组合框取决于它...所以如果我从客户端组合框选择一个项目然后在用户组合框中,我必须只获取与A相关的值,其余的组合框也只获得与A有关的值......但是如果我从客户端选择B,则与A相关的项目应该清除并且仅从B获取项目...因此如何清除现有项目?清除最后选定的值在JCombobox选择另一个项目

public void actionPerformed(ActionEvent e) 
{ 
    try 
    { 
     String query="select distinct `User_Name`,`Purchaser_Name`,`Product1`,`User_boss`,`Purchaser_boss`,`Sales_Engineer`,`Sales_boss` from Client where Client_Name = ?"; 
     PreparedStatement pst=conn.prepareStatement(query); 
     pst.setString(1, (String) client.getSelectedItem()); 
     ResultSet rs=pst.executeQuery(); 

     while(rs.next()) 
     { 

      user.addItem(rs.getString("User_Name")); 
      user.setSelectedItem(null); 
      purchase.addItem(rs.getString("Purchaser_Name")); 

      prod.addItem(rs.getString("Product1")); 

      uboss.addItem(rs.getString("User_boss")); 

      pboss.addItem(rs.getString("Purchaser_boss")); 

      sengg.addItem(rs.getString("Sales_Engineer")); 

      sboss.addItem(rs.getString("Sales_boss")); 

//   System.out.println(query); 

     } 
//  System.out.println(query); 


    } 
    catch(Exception h) 
    { 
     h.printStackTrace(); 
    }  
} 
+0

请发布选择组合框项目的代码 –

+0

在这里,我只在客户端组合框中选择项目...并为此传递可变长度客户端.... pst.setString(1,(String)client.getSelectedItem()); – Vsal

回答

1

您可以创建参考lastSelectedItem。 当您做出选择时,ActionEvent被触发并发送到您的ActionListener。 在收听者调用方法getSelectedItemJComboBox将其存储在lastSelectedItem

当您在组合框中选择另一项时,您的侦听器会再次触发,您可以使用lastSelectedItem引用在jcombobox中找到它并清除它。

+0

好的,谢谢你... – Vsal

+0

感谢您的答复,但你可以请张贴代码来说明这一点。它会非常有帮助。我不确定如何写? – Vsal

+0

这里是https://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#listeners –

相关问题