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

时间:2022-02-09 07:47:52

在web项目中,通过下拉框、JQuery和ajax可以实现下拉框联动查询。

譬如说,当你查询某个地方时,页面上有:省份:<下拉框省份> 市区:<下拉框市区> 县乡:<下拉框县乡> 街道:<街道下拉框> 查询

譬如说,你选择了省:江苏省,那么在市区中只会显示江苏省的市区

譬如:(网上的图)

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

具体详细实现可以参考,写得挺好的: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中博主的总结:其实都一样,自己做出来的还是很开心的。