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 –

相關問題