javaGUI中下拉列表联动问题

首先 : 具体解释下 标题 下拉列表联动 就是将两个或两个以上的下拉列表连接(称作连接,后面就明白什么意思了)

简单的 例如

javaGUI中下拉列表联动问题

当我们点击别的省或市时

javaGUI中下拉列表联动问题

简而言之 就是实现下拉列表的联动

现在

除了基本的组件以外 希望大家先去了解一下 哈希map 以及下拉列表的部分方法

可以参考 http://c.biancheng.net/view/1225.html https://blog.csdn.net/weixin_44512194/article/details/92830703 这是下拉列表的方法

对于哈希 只要简单了解一下就好了 就不推荐网站了

好了 下面我们直接看代码

1 import java.awt.FlowLayout;
  2 import java.awt.event.ItemEvent;
  3 import java.awt.event.ItemListener;
  4 import java.util.HashMap;
  5 import javax.swing.JComboBox;
  6 import javax.swing.JFrame;
  7 import javax.swing.JLabel;
  8 import javax.swing.WindowConstants;
  9
 10 public class JComboBoxExample  extends JFrame implements ItemListener {
 11
 12
 13   JLabel ProvinceJL;//Province label
 14   JComboBox ProvinceJCB;//Province drop-down list
 15   JLabel CityJL;//The city label
 16   JComboBox CityJCB;//City drop-down list
 17   JLabel DistrictAndCountyJL;//Area county label
 18   JComboBox DistrictAndCountyJCB;//District and county drop-down list
 19
 20
 21   //Set the corresponding hash
 22   HashMap cont1;
 23   HashMap cont2;
 24   //Component defined
 25
 26   //A constructor
 27   public JComboBoxExample(){
 28     init();
 29
 30   }
 31
 32   private void init(){//Initialize the
 33
 34     //All levels of the label
 35     ProvinceJL=new JLabel("省份:");
 36     CityJL=new JLabel("市:");
 37     DistrictAndCountyJL=new JLabel("区县:");
 38
 39
 40     // The string array of provinces is set to three provinces and each unit has three cities under its jurisdiction
 41     String [] ProOne={"安徽省","山东省","浙江省"};
 42     //Three corresponding cities
 43     String [] CityOne={"合肥市","芜湖市","安庆市"};
 44     String [] CityTwo={"青岛市","济南市","菏泽市"};
 45     String [] CityThree={"杭州市","宁波市","温州市"};
 46
 47     //Nine corresponding districts and counties
 48     String [] DisOneOne={"包河区","长丰县","肥东县"};//安徽合肥
 49     String [] DisOneTwo={"镜湖区","无为县","弋江区"};//安徽芜湖
 50     String [] DisOneThree={"宿松县","怀宁县","太湖县"};//安徽安庆
 51     String [] DisTwoOne={"崂山区","平度区","黄岛区"};//山东青岛
 52     String [] DisTwoTwo={"长清区","槐荫区","平阴县"};//山东济南
 53     String [] DisTwoThree={"单县","牡丹区","定陶区"};//山东菏泽
 54     String [] DisThreeOne={"富阳区","西湖区","余杭区"};//浙江杭州
 55     String [] DisThreeTwo={"北仑区","奉化区","宁海县"};//浙江宁波
 56     String [] DisThreeThree={"苍南区","文成县","泰顺县"};//浙江温州
 57
 58     //The corresponding list of districts and counties mapped to different provinces and cities
 59     cont1=new HashMap();
 60     cont1.put(ProOne[0],CityOne);
 61     cont1.put(ProOne[1],CityTwo);
 62     cont1.put(ProOne[2],CityThree);//对省绑定市
 63     //Bind county list to city
 64     cont2=new HashMap();
 65     cont2.put(CityOne[0],DisOneOne);
 66     cont2.put(CityOne[1],DisOneTwo);
 67     cont2.put(CityOne[2],DisOneThree);
 68     cont2.put(CityTwo[0],DisTwoOne);
 69     cont2.put(CityTwo[1],DisTwoTwo);
 70     cont2.put(CityTwo[2],DisTwoThree);
 71     cont2.put(CityThree[0],DisThreeOne);
 72     cont2.put(CityThree[0],DisThreeTwo);
 73     cont2.put(CityThree[0],DisThreeThree);
 74     //Binding to all levels of the district and county completion
 75     //Used for determination of subordinate drop-down lists
 76
 77
 78     //All levels of tag instantiation
 79     ProvinceJCB=new JComboBox(ProOne);
 80     CityJCB=new JComboBox(CityOne);
 81     DistrictAndCountyJCB=new JComboBox(DisOneOne);
 82
 83     //Add monitor
 84     ProvinceJCB.addItemListener(this);
 85     CityJCB.addItemListener(this);
 86     DistrictAndCountyJCB.addItemListener(this);
 87
 88     //Set the size
 89     setLayout(new FlowLayout());
 90     setSize(500,550);
 91
 92     //add
 93     add(ProvinceJL);
 94     add(ProvinceJCB);
 95     add(CityJL);
 96     add(CityJCB);
 97     add(DistrictAndCountyJL);
 98     add(DistrictAndCountyJCB);
 99
100     //show
101     setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
102     setVisible(true);
103     //Complete initialization
104   }
105
106
107   @Override//The event processing
108   public void itemStateChanged(ItemEvent e) {
109
110     String to=e.getItem().toString();
111     if (cont1.containsKey(to)){
112       //Provinces have been selected、
113       CityJCB.removeAllItems();
114       String [] now=cont1.get(to);
115       for(int i=0;i){
116         CityJCB.addItem(now[i]);
117       }
118     }
119     else {
120       if (cont2.containsKey(e.getItem().toString())){
121         DistrictAndCountyJCB.removeAllItems();
122         String [] now=cont2.get(to);
123         for(int i=0;i){
124           DistrictAndCountyJCB.addItem(now[i]);
125         }
126       }
127     }
128   }
129
130
131   public static void main(String [] args){
132     new JComboBoxExample();
133
134   }
135 }

如果你看了 上面的下拉列表的方法 相信你一定能看懂

就不多做解释了

Original: https://www.cnblogs.com/cndccm/p/12812301.html
Author: Mr小明同学
Title: javaGUI中下拉列表联动问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573026/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • springboot项目打包、部署Tomcat流程详解

    项目打包1.移除springboot内置tomcat,在pom文件中找到spring-boot-starter-web依赖,替换成以下依赖。(仅在项目打包时移除内置tomcat) …

    Java 2023年5月30日
    087
  • 如何下载网页上的背景图片?

    如何下载网页上的背景图片?(以谷歌浏览器为例) 具体步骤(以研控为例) 一、登录网址 我们这里以网站 研控 为例,网址放在这里:https://www.yankong.org/ 我…

    Java 2023年6月5日
    0205
  • Spring基于XML配置AOP

    目录结构: D:\Java\IdeaProjects\JavaProj\SpringHelloWorld\src\cn\edu\bjut\service\StudentServic…

    Java 2023年5月30日
    069
  • VSCode打字特效Power Mode插件

    由于最近比较频繁使用VSCode这个软件写代码,然后里面有一个非常炫酷的打字特效插件,平时写代码的时候不会感觉太枯燥(其实就是装一下逼吧)! 安装很简单,但是容易忘,所以这里整理一…

    Java 2023年6月5日
    089
  • 深入理解Apollo核心机制之配置读取——ConfigService定时扫描

    概述 之前我们了解了,客户端会每秒(默认)长轮询Config Service,等待通知,然后去主动拉取配置文件。本文主要跟进Config Service主动轮询ReleaseMes…

    Java 2023年6月6日
    090
  • Spring的任务调度@Scheduled注解——task:scheduler和task:executor的解析

    一个简单的Spring定时任务的 demo,全部代码见下载地址:https://download.csdn.net/download/yx0628/10511753对于 appli…

    Java 2023年5月30日
    075
  • 基础篇:JAVA集合,面试专用

    没啥好说的,在座的各位都是靓仔 List 数组 Vector 向量 Stack 栈 Map 映射字典 Set 集合 Queue 队列 Deque 双向队列 关注公众号,一起交流,微…

    Java 2023年6月5日
    0104
  • 获取spring web项目的所有url请求信息

    本文讲述获取当前项目的所有restful请求的详细信息,含url、接口描述、请求方式等信息,主要用到了swagger的相关特性,最终返回的数据格式如下: [{ "clas…

    Java 2023年5月30日
    078
  • 系统性掌握SpringBoot

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/franson-2016/p/13320880.html…

    Java 2023年5月30日
    083
  • git 本地项目与远程地址建立连接

    git 本地项目与远程地址建立连接 建立好远程仓库与本地项目地址后在本地项目文件夹内初始化git仓库 git init 复制远程项目路径地址,后执行: git remote add…

    Java 2023年6月5日
    0144
  • 一冲计划

    计划总会过期,实现了的才会永久保存 Well Plan 顺利通过我的第一学期的所有科目,可以熟练的操作计算机一级,并将计算机二级提上日程,不打算考一级计算机,想要直接考二级!趁着假…

    Java 2023年6月5日
    079
  • mybatis 中 foreach collection的三种用法

    foreach元素的属性主要有 item,index,collection,open,separator,close。 在使用foreach的时候最关键的也是最容易出错的就是col…

    Java 2023年5月30日
    084
  • JavaWeb-Tomcat阀

    Filter的功能之一就是预处理客户请求,而 Tomcat阀是对 Catalina容器接收到的 HTTP请求进行预处理. 过滤器实在 Servlet规范中提出来的,因此适用于所有的…

    Java 2023年5月29日
    086
  • nginx内置全局变量及含义

    名称 版本 说明(变量列表来源于文件 ngx_http_variables ) $args 1.0.8 请求中的参数; $binary_remote_addr 1.0.8 远程地址…

    Java 2023年5月30日
    068
  • 红黑树原理、查找效率、插入及变化规则分析

    引言 和2-3-4树的关系 红黑树 定义 红黑树的查找效率 红黑树的插入及变化规则 插入及变化规则 例子1 例子2 例子3 红黑树的插入及变化规则,对应在2-3-4树中是什么操作?…

    Java 2023年6月6日
    087
  • 米哈游2023秋季招聘正式开始~提前批有机会免笔试!

    米哈游2023秋季招聘正式开始~ [灯泡]简历投递:7.4-10.31提前批: 7.22号之前投递部分岗位有机会免笔试笔试:7月-10月面试:7月中旬开始 [灯泡] 成功密码内推码…

    Java 2023年6月8日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球