Java图形界面编写的省市级联选项

文章正文
发布时间:2024-06-13 03:05

        最近学习Java图形界面编程,在地址省/市和区/市/县选择的时候用到级联选项,要将地区和省市对应起来,所有用JComboBox将全国的省市做了一个大概的应用,为方便使用,将效果和代码直接附上。

        效果图如下所示:

刚进入是界面显示效果:


        点击下拉选择省份效果:


        选择省份后效果:


        选择城市下拉效果:



        代码如下所示:

/** * 地址选择 */ private void address() { JLabel addressLabel = new JLabel("地\0\0址:"); addressLabel.setBounds(20, 180, 50, 20); JComboBox<String> mProvenceComboBox = new JComboBox<String>(); mProvenceComboBox.setModel(new DefaultComboBoxModel<String>( new String[] { "--请选择省/市--", "北京市", "天津市", "重庆市", "上海市", "辽宁省", "吉林省", "黑龙江省", "河北省", "山西省", "河南省", "山东省", "江苏省", "安徽省", "江西省", "浙江省", "福建省", "广东省", "海南省", "台湾省", "贵州省", "云南省", "四川省", "湖南省", "湖北省", "陕西省", "甘肃省", "青海省", "内蒙古自治区", "西藏自治区", "新疆维吾尔自治区", "广西壮族自治区", "宁夏回族自治区" })); mProvenceComboBox.setBounds(70, 180, 130, 20); JComboBox<String> mCityComboBox = new JComboBox<String>(); mCityComboBox.setModel(new DefaultComboBoxModel<String>(new String[] { "--请选择市/区/县--" })); mCityComboBox.setBounds(210, 180, 130, 20); mProvenceComboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { String[][] cityStr = { { "--请选择市/区/县--" }, { "东城区", "西城区", "崇文区", "宣武区", "朝阳区", "海淀区", "丰台区", "门头沟区", "房山县", "大兴县", "顷义县", "平谷县", "密云县", "怀柔县", "昌平县", "延庆县", "通县" }, { "和平区", "河北区", "河东区", "河西区", "南开区", "红桥区", "东丽区", "西青区", "津南区", "北辰区", "塘沽区", "汉沽区", "大港区", "蓟县", "宝坻县", "武清县", "静海县", "宁河县" }, { "渝中区", "大渡口区", "江北区", "沙坪坝区", "九龙坡区", "南岸区", "北碚区", "万盛区", "双桥区", "渝北区", "巴南区", "万州区", "涪陵区", "黔江区", "长寿区", "江津区", "永川区", "合川区", "南川区", "綦江县", "潼南县", "荣昌县", "璧山县", "大足县", "铜梁县", "梁平县", "城口县", "垫江县", "武隆县", "丰都县", "奉节县", "开县", "云阳县", "忠县", "巫溪县", "巫山县", "石柱土家族自治县", "秀山土家族苗族自治县", "酉阳土家族苗族自治县", "彭水苗族土家族自治县" }, { "上海黄浦区", "卢湾区", "金山区", "徐汇区", "长宁区", "静安区", "普陀区", "闸北区", "虹口区", "杨浦区", "闵行区", "宝山区", "嘉定区", "浦东新区", "松江区", "青浦区", "南汇区", "奉贤区", "崇明区" }, { "沈阳市", "大连市", "鞍山市", "抚顺市", "本溪市", "丹东市", "锦州市", "葫芦岛市", "营口市", "盘锦市", "阜新市", "辽阳市", "铁岭市", "朝阳市", "凌源市", "北票市" }, { "长春市", "吉林市", "四平市", "辽源市", "通化市", "白山市", "延边朝鲜族自治州", "白城市", "松原市" }, { "哈尔滨市", "齐齐哈尔市", "鹤岗市", "双鸭山市", "鸡西市", "大庆市", "伊春市", "牡丹江市", "佳木斯市", "台河市", "黑河市", "绥化市", "大兴安岭地区" }, { "石家庄市", "唐山市", "秦皇岛市", "邯郸市", "邢台市", "保定市", "张家口市", "承德市", "廊坊市", "衡水市", "沧州市" }, { "太原市", "大同市", "阳泉市", "长治市", "晋城市", "朔州市", "晋中市", "运城市", "忻州市", "临汾市", "吕梁地区" }, { "郑州市", "开封市", "洛阳市", "平顶山市", "焦作市", "鹤壁市", "新乡市", "安阳市", "濮阳市", "许昌市", "漯河市", "三门峡市", "南阳市", "商丘市", "信阳市", "周口市", "驻马店市", "济源市" }, { "济南市", "青岛市", "淄博市", "枣庄市", "东营市", "潍坊市", "烟台市", "威海市", "济宁市", "泰安市", "日照市", "莱芜市", "临沂市", "德州市", "聊城市", "滨州市", "菏泽市" }, { "南京市", "徐州市", "连云港市", "淮安市", "宿迁市", "盐城市", "扬州市", "泰州市", "南通市", "镇江市", "常州市", "无锡市", "苏州市" }, { "合肥市", "芜湖市", "蚌埠市", "淮南市", "马鞍山市", "淮北市", "铜陵市", "安庆市", "黄山市", "滁州市", "阜阳市", "宿州市", "巢湖市", "六安市", "亳州市", "池州市", "宣城市" }, { "南昌市", "萍乡市", "九江市", "新余市", "鹰潭市", "赣州市", "吉安市", "宜春市", "抚州市", "上饶市" }, { "杭州市", "宁波市", "温州市", "嘉兴市", "绍兴市", "金华市", "衢州市", "舟山市", "台州市", "丽水市" }, { "福州市", "厦门市", "三明市", "莆田市", "泉州市", "漳州市", "南平市", "龙岩市", "宁德市" }, { "广州市", "深圳市", "珠海市", "汕头市", "韶关市", "惠州市", "河源市", "梅州市", "汕尾市", "东莞市", "中山市", "江门市", "佛山市", "阳江市", "湛江市", "茂名市", "肇庆市", "清远市", "潮州市", "揭阳市", "云浮市" }, { "海口市", "三亚市" }, { "台北市", "高雄市", "基隆市", "台中市", "台南市", "新竹市", "嘉义市台北县(板桥市)", "宜兰县(宜兰市)", "新竹县(竹北市)", "桃园县(桃园市)", "苗栗县(苗栗市)", "台中县(丰原市) 彰化县(彰化市)", " 南投县(南投市)", " 嘉义县(太保市)", " 云林县(斗六市)", "台南县(新营市)", " 高雄县(凤山市)", "屏东县(屏东市)", "台东县(台东市)", "花莲县(花莲市)", "澎湖县(马公市) " }, { "贵阳市", "六盘水市", "遵义市", "安顺市", "铜仁地区", "毕节地区", "黔西南布依族苗族自治州", "黔东南南苗族侗族自治州", "黔南布依族苗族自治州" }, { "昆明市", "玉溪市", "保山市", "昭通市", "思茅地区", "临沧地区", "丽江地区", "文山壮族苗族自治州", "红河哈尼族彝族自治州", "西双版纳傣族自治州", "楚雄彝族自治州", "大理白族自治州", "德宏傣族景颇族自治州", "怒江傈僳族自治州", "迪庆藏族自治州" }, { "成都市", "自贡市", "攀枝花市", "泸州市", "德阳市", "绵阳市", "广元市", "遂宁市", "内江市", "乐山市", "南充市", "宜宾市", "广安市", "达州市", "眉山市", "雅安市", "巴中市", "资阳市", "阿坝藏族羌族自治州", "甘孜藏族自治州", "凉山彝族自治州" }, { "长沙市", "株洲市", "湘潭市", "衡阳市", "邵阳市", "岳阳市", "常德市", "张家界市", "益阳市", "郴州市", "永市", "怀化市", "娄底市", "湘西土家族苗族自治州" }, { "武汉市", "黄石市", "襄樊市", "十堰市", "荆州市", "宜昌市", "荆门市", "鄂州市", "孝感市", "黄冈市", "咸宁市", "随州市", "恩施土家族苗族自治州", "省直辖行政单位:仙桃市", "天门市", "潜江市", "神农架林区" }, { "西安市", "铜川市", "宝鸡市", "咸阳市", "渭南市", "延安市", "汉中市", "榆林市", "安康市", "商洛市" }, { "兰州市", "金昌市", "白银市", "天水市", "嘉峪关市", "武威市", "张掖市", "平凉市", "酒泉市", "庆阳市", "定西地区", "陇南地区", "甘南藏族自治州", "临夏回族自治州" }, { "西宁市", "海东地区", "海北藏族自治州", "黄南藏族自治州", "海南藏族自治州", "果洛藏族自治州", "玉树藏族自治州", "海西蒙古族藏族自治州" }, { "呼和浩特市", "包头市", "乌海市", "赤峰市", "鄂尔多斯市", "呼伦贝尔市", "乌兰察布盟", "锡林郭勒盟", "巴彦淖尔盟", "阿拉善盟", "兴安盟" }, { "拉萨市", "昌都地区", "山南地区", "日喀则地区", "阿里地区", "林芝地区" }, { "乌鲁木齐市", "克拉玛依市", "吐鲁番地区", "哈密地区", "和田地区", "阿克苏地区", "喀什地区", "克孜勒苏柯尔克孜自治州", "巴音郭楞州", "昌吉州", "博尔塔拉州", "伊犁哈萨克自治州", "塔城地区", "阿勒泰州", "省直辖行政单位:石河子市", "阿拉尔市", "图木舒克市", "五家渠市" }, { "南宁市", "柳州市", "桂林市", "梧州市", "北海市", "防城港市", "钦州市", "贵港市", "玉林市", "百色市", "贺州市", "河池市", "来宾市", "崇左市 " }, }; if (e.getStateChange() == 1) { mCityComboBox.setModel(new DefaultComboBoxModel<>(new String[] { "--请选择市/区--" })); String mProvenceStr = (String) mProvenceComboBox.getSelectedItem(); String[] datas = cityStr[mProvenceComboBox.getSelectedIndex()]; ComboBoxModel<String> data = new DefaultComboBoxModel<String>(datas); mCityComboBox.setModel(data); mCityComboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == 1) { String mCityStr = (String) mCityComboBox.getSelectedItem(); } } }); } } }); contentPane.add(addressLabel); contentPane.add(mProvenceComboBox); contentPane.add(mCityComboBox); }
        以上代码由于定义的是一个继承了JFrame的类,所有就没有另外添加别的容器进行操作。