Java Swing應用程序 JComboBox下拉框聯動查詢


在web項目中,通過下拉框、JQuery和ajax可以實現下拉框聯動查詢。

譬如說,當你查詢某個地方時,頁面上有:省份:<下拉框省份> 市區:<下拉框市區> 縣鄉:<下拉框縣鄉> 街道:<街道下拉框> 查詢

譬如說,你選擇了省:江蘇省,那么在市區中只會顯示江蘇省的市區

譬如:(網上的圖)

具體詳細實現可以參考,寫得挺好的:http://blog.csdn.net/sinat_24491773/article/details/50810471

 

那么在swing窗體怎么實現聯動查詢呢?

其實也很簡單,想想web方面的實現過程,無非是在第一個省份的下拉框選擇之后,設置監聽事件,然后使用ajax去得到后邊下拉框的數據,然后更新之即可

那么基於這么想法,swing不就也可以了么?

1.jcombobox設置添加ItemListener事件;

2.重寫ItemListener的itemStateChanged方法;

3.清空后續下拉框的原始數據;

4.重新設置后續下拉框的原始數據。

代碼如下:

jcb_college.addItemListener(new ItemListener() {//為college下拉框設置監聽器
    @Override
	public void itemStateChanged(ItemEvent e) {
		jcb_grade.removeAllItems();//清除該下拉框的原始數據,
		jcb_grade.setModel(new DefaultComboBoxModel<>(getField(ConstantData.Grade)));//獲得新的數據
		jcb_class.removeAllItems();
		jcb_class.setModel(new DefaultComboBoxModel<>(getField(ConstantData.Class)));
	}
});

 上述代中的getField()方法就是從數據庫中獲取選擇的college下的年級和班級

偽代碼如下:

1.獲取college下拉框選擇的數據;
   selected =    jcb_college.getSelect(); 
2.從數據庫中獲得selected的college所有的年級
    select grade from grade where college == selected;

 引用上述bolg中博主的總結:其實都一樣,自己做出來的還是很開心的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM