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/712437/

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

(0)

大家都在看

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