import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; public class ShowCityInfoFrame extends JFrame{ private Map<String,String> map=new LinkedHashMap<String,String>(); private JComboBox cmb_shixian; private JComboBox cmb_sheng; public ShowCityInfoFrame(){ super(); setTitle("显示与省市级联的县市"); addWindowListener(new WindowAdapter(){ public void windowOpened(final WindowEvent arg0){ map.put("北京", "北京");// 添加 map.put("上海", "上海"); map.put("天津", "天津"); map.put("重庆", "重庆"); map.put("黑龙江", "哈尔滨,齐齐哈尔,牡丹江,大庆,伊春,双鸭山,鹤岗,鸡西,佳木斯,七台河,黑河,绥化,大兴安岭"); map.put("吉林", "长春,延边,吉林,白山,白城,四平,松原,辽源,大安,通化"); map.put("辽宁", "沈阳,大连,葫芦岛,旅顺,本溪,抚顺,铁岭,辽阳,营口,阜新,朝阳,锦州,丹东,鞍山"); map.put("内蒙古", "呼和浩特,呼伦贝尔,锡林浩特,包头,赤峰,海拉尔,乌海,鄂尔多斯,通辽"); map.put("河北", "石家庄,唐山,张家口,廊坊,邢台,邯郸,沧州,衡水,承德,保定,秦皇岛"); map .put("河南", "郑州,开封,洛阳,平顶山,焦作,鹤壁,新乡,安阳,濮阳,许昌,漯河,三门峡,南阳,商丘,信阳,周口,驻马店"); map .put("山东", "济南,青岛,淄博,威海,曲阜,临沂,烟台,枣庄,聊城,济宁,菏泽,泰安,日照,东营,德州,滨州,莱芜,潍坊"); map.put("山西", "太原,阳泉,晋城,晋中,临汾,运城,长治,朔州,忻州,大同,吕梁"); map .put("江苏", "南京,苏州,昆山,南通,太仓,吴县,徐州,宜兴,镇江,淮安,常熟,盐城,泰州,无锡,连云港,扬州,常州,宿迁"); map.put("安徽", "合肥,巢湖,蚌埠,安庆,六安,滁州,马鞍山,阜阳,宣城,铜陵,淮北,芜湖,毫州,宿州,淮南,池州"); map.put("陕西", "西安,韩城,安康,汉中,宝鸡,咸阳,榆林,渭南,商洛,铜川,延安"); map.put("宁夏", "银川,固原,中卫,石嘴山,吴忠"); map.put("甘肃", "兰州,白银,庆阳,酒泉,天水,武威,张掖,甘南,临夏,平凉,定西,金昌"); map.put("青海", "西宁,海北,海西,黄南,果洛,玉树,海东,海南"); map.put("湖北", "武汉,宜昌,黄冈,恩施,荆州,神农架,十堰,咸宁,襄樊,孝感,随州,黄石,荆门,鄂州"); map.put("湖南", "长沙,邵阳,常德,郴州,吉首,株洲,娄底,湘潭,益阳,永州,岳阳,衡阳,怀化,韶山,张家界"); map.put("浙江", "杭州,湖州,金华,宁波,丽水,绍兴,雁荡山,衢州,嘉兴,台州,舟山,温州"); map.put("江西", "南昌,萍乡,九江,上饶,抚州,吉安,鹰潭,宜春,新余,景德镇,赣州"); map.put("福建", "福州,厦门,龙岩,南平,宁德,莆田,泉州,三明,漳州"); map.put("贵州", "贵阳,安顺,赤水,遵义,铜仁,六盘水,毕节,凯里,都匀"); map .put("四川", "成都,泸州,内江,凉山,阿坝,巴中,广元,乐山,绵阳,德阳,攀枝花,雅安,宜宾,自贡,甘孜州,达州资阳,广安,遂宁,眉山,南充"); map .put("广东", "广州,深圳,潮州,韶关,湛江,惠州,清远,东莞,江门,茂名,肇庆,汕尾,河源,揭阳,梅州,中山,德庆,阳江,云浮,珠海,汕头,佛山"); map.put("广西", "南宁,桂林,阳朔,柳州,梧州,玉林,桂平,贺州,钦州,贵港,防城港,百色,北海,河池,来宾,崇左"); map.put("云南", "昆明,保山,楚雄,德宏,红河,临沧,怒江,曲靖,思茅,文山,玉溪,昭通,丽江,大理"); map.put("海南", "海口,三亚,儋州,琼山,通什,文昌"); map .put("新疆", "乌鲁木齐,阿勒泰,阿克苏,昌吉,哈密,和田,喀什,克拉玛依,石河子,塔城,库尔勒,吐鲁番,伊宁"); Iterator<String> iter=map.keySet().iterator(); while(iter.hasNext()){ String key=iter.next(); cmb_sheng.addItem(key); } } }); getContentPane().setLayout(null); setBounds(100,100,420,244); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JLabel label=new JLabel(); label.setText("省或直辖市"); label.setBounds(25, 26, 80, 18); getContentPane().add(label); final JLabel label_1 = new JLabel(); label_1.setText("对应的市县:"); label_1.setBounds(25, 68, 80, 18); getContentPane().add(label_1); cmb_sheng=new JComboBox(); cmb_sheng.addItemListener(new ItemListener(){ public void itemStateChanged(final ItemEvent arg0){ cmb_shixian.removeAllItems(); String sheng=(String)cmb_sheng.getSelectedItem(); String allShiXian=map.get(sheng); String shiXians[]=allShiXian.split(","); for(String shixian:shiXians){ cmb_shixian.addItem(shixian); } } }); cmb_sheng.setBounds(111, 22, 271, 27); getContentPane().add(cmb_sheng); cmb_shixian = new JComboBox(); cmb_shixian.setBounds(111, 64, 271, 27); getContentPane().add(cmb_shixian); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub EventQueue.invokeLater(new Runnable(){ public void run(){ try{ ShowCityInfoFrame frame=new ShowCityInfoFrame(); frame.setVisible(true); }catch(Exception e){ e.printStackTrace(); } } }); } }