首页 > 代码库 > Java Swing应用程序 JComboBox下拉框联动查询

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中博主的总结:其实都一样,自己做出来的还是很开心的。

 

Java Swing应用程序 JComboBox下拉框联动查询