Java 3、 建立菜单和复杂控件:实现以下图片窗口,其中省市需实现联动

 

 首先是实现的样子

接着附上源代码 

String[] province= {"请选择","广东","广西"};
		String[][] city= {
				{""},
				{"请选择","广州","深圳"},
				{"请选择","桂林","梧州"}
		};
		
		JComboBox comboBox = new JComboBox(province);
		comboBox.setBounds(232, 80, 88, 23);
		contentPane.add(comboBox);
		
		JComboBox comboBox_1 = new JComboBox();	
		comboBox_1.setBounds(544, 82, 93, 23);
		contentPane.add(comboBox_1);
		
		comboBox.addActionListener(e-> {
			comboBox_1.removeAllItems();           //对城市按钮清零
			int index=comboBox.getSelectedIndex(); //得到对省份按钮选择的索引 监听器e的作用知道你选的是哪个
			for(int i=0;i<city[index].length;i++)
			{
				comboBox_1.addItem(city[index][i]);
			}
		});

我只讲大概思路:

1.设置一个String类型的一维数组,用来保存相关省份

2.设置一个String类型的二维m行n列数组,用来保存相关的市区,至于为什么要用二维数组就是为了是实现联动,使它的第m行对应一开始一维数组中第m个省份

例如:city[1][1]广州 对应province[1]广东 

city[1][2]深圳 对应province[1]广东

3.按钮设置时,第一个按钮我将province给传进去了,这就代表着左边省份选择按钮有直接的下拉菜单,而右边我没有传任何东西进去,也就自然是空白

4.核心!!!

为左边按钮增加了一个行为监听器 相关具体用法自己搜索

首先将右边按钮清空

然后得到左边按钮是选择第几位,其实就是看看你接下来选一维数组中的第几位,数组从0 开始的

这也就是为什么之前的一维数组和二维数组要对应写

for循环添加右边要显示的内容 通过.length来得到要添加的个数

核心代码是下面的监听器实现联动 相关的注释我写在后面了 

至于JComboBox来说的话 这是Design使用图形相关设计自己产生的,不是手动打上去的

comboBox.addActionListener(e-> {
			comboBox_1.removeAllItems();           //对城市按钮清零
			int index=comboBox.getSelectedIndex(); //得到对省份按钮选择的索引 监听器e的作用知道你选的是哪个
			for(int i=0;i<city[index].length;i++)
			{
				comboBox_1.addItem(city[index][i]);
			}
		});

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值