Java编程题——简单下拉框二级联动

题目要求:用下拉框实现两级联动,第一个为省份,第二个为城市名
代码实现:

import javax.swing.*;
import java.awt.event.*;

public class ItemTest extends JFrame implements ItemListener{

	JComboBox province;   //一级选项,存放省份
	JComboBox city;     //二级选项,存放城市名
	
	public  ItemTest(){
	
		JLabel label1 = new JLabel("请选择省份:");
		label1.setSize(130, 30);
		label1.setLocation(20, 60);
		this.add(label1);
		
		JLabel label2 = new JLabel("请选择城市:");
		label2.setSize(130, 30);
		label2.setLocation(20, 130);
		this.add(label2);
	
		province = new JComboBox();    //设置省份
		String[] pro = getProvinceNames();
		for( int i = 0; i < pro.length; i++){
			province.addItem(pro[i]);
		}
		province.setSize(200, 30);
		province.setLocation(130,60);
		province.addItemListener((ItemListener) this);
		this.add(province);
		
		city = new JComboBox();   //设置城市
		city.setSize(200, 30);
		city.setLocation(130, 130);
		this.add(city);
		
		this.setSize(450,350);
		this.setLayout(null);
		this.setVisible(true);
	}
	
	public void itemStateChanged(ItemEvent e){
		JComboBox com =(JComboBox)e.getSource();
		String str = com.getSelectedItem().toString();
		String[] province = getCityByProvince(str);
		city.removeAllItems();
		for( int i = 0; i < province.length; i++){
			city.addItem(province[i]);
		}
	}
	
    //获取省份
	private String[] getProvinceNames(){
		String[] province = {"河北省","陕西省","山东省","河南省","吉林省"};
		return province;
	}
	
    //获取与省份匹配的城市
	private String[] getCityByProvince(String str) {
		String[] city = new String[10];
		if( str.equals("河北省")){
			city[0] = "石家庄";
			city[1] = "秦皇岛";
			city[2] = "保定市";
			city[3] = "唐山市";
			city[4] = "张家口";
			city[5] = "邯郸市";
			city[6] = "承德市";
		}
		if( str.equals("陕西省")){
			city[0] = "西安市";
			city[1] = "咸阳市";
			city[2] = "榆林市";
			city[3] = "宝鸡市";
			city[4] = "金昌市";
			city[5] = "铜川市";
			city[6] = "渭南市";
			city[7] = "汉中市";
		}
		if( str.equals("山东省")){
			city[0] = "潍坊市";
			city[1] = "威海市";
			city[2] = "枣庄市";
			city[3] = "济宁市";
			city[4] = "烟台市";
			city[5] = "德州市";
			city[6] = "莱芜市";
		}
		if( str.equals("河南省")){
			city[0] = "郑州市";
			city[1] = "洛阳市";
			city[2] = "焦作市";
			city[3] = "商丘市";
			city[4] = "信阳市";
			city[5] = "安阳市";
			city[6] = "三门峡";
			city[7] = "周口市";
			city[8] = "驻马店";
			city[9] = "南阳市";
		}
		if( str.equals("吉林省")){
			city[0] = "吉林市";
			city[1] = "通化市";
			city[2] = "白城市";
			city[3] = "四平市";
			city[4] = "辽源市";
			city[5] = "松原市";
			city[6] = "白山市";
		}
		return city;
	}
}
//实现:
public class Test {
	public static void main(String[] args) {

		ItemTest test = new ItemTest();
	}
}

运行结果:
在这里插入图片描述

在Vue.js中实现下拉框二级联动通常涉及到两个组件级别的联动操作,即一个下拉框(一级)的选择会影响另一个下拉框(二级)的数据源。具体步骤如下: 1. **创建数据结构**:首先,你需要定义好数据模型,比如有两个数组,一级下拉框对应选项A,二级下拉框对应选项B,每个A项关联一到多个B项。 ```json { "itemsA": [ { "id": 1, "name": "选项A1", "itemsB": [ {"id": 11, "name": "选项B1"}, {"id": 12, "name": "选项B2"} ] }, { "id": 2, "name": "选项A2", "itemsB": [ {"id": 21, "name": "选项B3"}, {"id": 22, "name": "选项B4"} ] } ], "itemsB": [] } ``` 2. **绑定选择事件**:在Vue实例中,将一级下拉框的`v-model`绑定到一个属性上,如`selectedItemA`,监听这个值的变化。 3. **处理联动逻辑**:当一级下拉框选中的时候,根据`selectedItemA`从服务器或本地获取对应的二级下拉框选项`itemsB`,然后更新视图。 ```javascript <template> <select v-model="selectedItemA"> <!-- 一级下拉框 --> <option v-for="(itemA, index) in itemsA" :key="index" :value="itemA.id">{{ itemA.name }}</option> </select> <select v-model="selectedItemB"> <!-- 二级下拉框 --> <option v-for="(itemB, index) in filteredItemsB" :key="index" :value="itemB.id">{{ itemB.name }}</option> </select> </template> <script> export default { data() { return { itemsA: [], selectedItemA: null, itemsB: [] }; }, computed: { filteredItemsB() { if (this.selectedItemA) { return this.itemsA.find(item => item.id === this.selectedItemA)?.itemsB || []; } else { return this.itemsB; } } }, // ...其他方法和生命周期钩子 }; </script> ``` 4. **添加状态管理**:如果项目规模较大,可能需要配合Vuex来统一管理和传递数据。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值