JComboBox数据库连接 “省市县”三级联动显示

6 篇文章 0 订阅
5 篇文章 0 订阅
iFrmPrProvice = new JComboBox();

		iFrmPrProvice.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Iterator ProvinceIt = dao.queryProvince().iterator();
				while (ProvinceIt.hasNext()) {
					PROVINCE p = (PROVINCE) ProvinceIt.next();
					iFrmPrProvice.addItem(p.getPROVINCENAME());
				}
			}
		});
		iFrmPrProvice.addItem("选择省");
		iFrmPrProvice.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				if (iFrmPrCity != null) {
					iFrmPrCity.removeAllItems();
				}
				if (iFrmPrCountry != null) {
					iFrmPrCountry.removeAllItems();
				}
				provinceName = iFrmPrProvice.getSelectedItem().toString();
				PROVINCE pr = (PROVINCE) dao.queryProvinceByName(provinceName);
					Set c = pr.getCity();
					for (Iterator it = c.iterator(); it.hasNext();) {
						CITY city = (CITY) it.next();
						iFrmPrCity.addItem(city.getCITYNAME());
					}
                         }
		});

		getContentPane().add(iFrmPrProvice, "8, 2, fill, fill");

		iFrmPrCity = new JComboBox();
		iFrmPrCity.addItem("选择市");
		iFrmPrCity.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				if (e.getStateChange() == ItemEvent.SELECTED) {
					if (iFrmPrCountry != null) {
						iFrmPrCountry.removeAllItems();
					}
					cityName = iFrmPrCity.getSelectedItem().toString();
					CITY c = (CITY) dao.queryCityByName(cityName);
					Set country = c.getCountry();
					for (Iterator it = country.iterator(); it.hasNext();) {
						COUNTRY co = (COUNTRY) it.next();
						iFrmPrCountry.addItem(co.getCOUNTRYNAME());
					}
				}
				return;
			}
		});


		getContentPane().add(iFrmPrCity, "10, 2, fill, fill");

		iFrmPrCountry = new JComboBox();

		iFrmPrCountry.addItem("选择县");
		getContentPane().add(iFrmPrCountry, "12, 2, fill, fill");
		{
			JScrollPane scrollPane = new JScrollPane();
			getContentPane().add(scrollPane, "2, 4, 11, 1, fill, fill");
			iFrmPrdescription = new JTextArea();
			scrollPane.setViewportView(iFrmPrdescription);
			iFrmPrdescription.setFont(new Font("仿宋_GB2312", Font.PLAIN, 20));
			iFrmPrdescription.setLineWrap(true);
		}

	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java省市三级联动可以通过使用三个下拉列表框来实现,其中每个下拉列表框都会显示一个级别的地理位置信息。下面是一个简单的实现方法: 1. 定义省市区三个下拉列表框。 ```java JComboBox<String> provinceComboBox = new JComboBox<String>(); JComboBox<String> cityComboBox = new JComboBox<String>(); JComboBox<String> districtComboBox = new JComboBox<String>(); ``` 2. 加载省份数据到省份下拉列表框中。 ```java String[] provinces = {"北京市", "天津市", "河北省", "山西省", "内蒙古自治区", "辽宁省", "吉林省", "黑龙江省", "上海市", "江苏省", "浙江省", "安徽省", "福建省", "江西省", "山东省", "河南省", "湖北省", "湖南省", "广东省", "广西壮族自治区", "海南省", "重庆市", "四川省", "贵州省", "云南省", "西藏自治区", "陕西省", "甘肃省", "青海省", "宁夏回族自治区", "新疆维吾尔自治区", "台湾省", "香港特别行政区", "澳门特别行政区"}; for (String province : provinces) { provinceComboBox.addItem(province); } ``` 3. 当省份选择发生改变时,更新城市下拉列表框中的城市数据。 ```java provinceComboBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String selectedProvince = (String) provinceComboBox.getSelectedItem(); String[] cities = getCities(selectedProvince); // 获取该省份下的城市 cityComboBox.removeAllItems(); // 清空城市下拉列表框 for (String city : cities) { cityComboBox.addItem(city); // 将城市添加到城市下拉列表框中 } } }); ``` 4. 当城市选择发生改变时,更新区下拉列表框中的区数据。 ```java cityComboBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String selectedCity = (String) cityComboBox.getSelectedItem(); String[] districts = getDistricts(selectedCity); // 获取该城市下的区 districtComboBox.removeAllItems(); // 清空区下拉列表框 for (String district : districts) { districtComboBox.addItem(district); // 将区添加到区下拉列表框中 } } }); ``` 5. 实现getCities和getDistricts方法,这两个方法分别根据省份和城市获取城市和区数据。 ```java private String[] getCities(String province) { // todo: 根据省份获取城市数据 return new String[]{}; } private String[] getDistricts(String city) { // todo: 根据城市获取区数据 return new String[]{}; } ``` 这样,就完成了Java省市三级联动的实现。需要注意的是,getCities和getDistricts方法中的数据需要根据实际情况进行填充。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值