java Map关联下拉列表item(地区选择)

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.lang.reflect.Array;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;

public class mapShowPlace extends JFrame {

    private JPanel contentPane;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    mapShowPlace frame = new mapShowPlace();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public mapShowPlace() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        textField = new JTextField();
        textField.setBounds(92, 23, 195, 21);
        contentPane.add(textField);
        textField.setColumns(10);
        
        textField_1 = new JTextField();
        textField_1.setBounds(92, 54, 195, 21);
        contentPane.add(textField_1);
        textField_1.setColumns(10);
        
        textField_2 = new JTextField();
        textField_2.setBounds(92, 90, 195, 27);
        contentPane.add(textField_2);
        textField_2.setColumns(10);
        
        JLabel lblNewLabel = new JLabel("\u59D3\u540D");
        lblNewLabel.setBounds(10, 26, 54, 15);
        contentPane.add(lblNewLabel);
        
        JLabel lblNewLabel_1 = new JLabel("\u8BE6\u7EC6\u5730\u5740");
        lblNewLabel_1.setBounds(10, 57, 54, 15);
        contentPane.add(lblNewLabel_1);
        
        JLabel lblNewLabel_2 = new JLabel("email");
        lblNewLabel_2.setBounds(10, 96, 54, 15);
        contentPane.add(lblNewLabel_2);
        
        String[]sexitem={"男","女"};
        comboBox = new JComboBox(sexitem);
        comboBox.setBounds(92, 127, 195, 21);
        contentPane.add(comboBox);
        
        JLabel label = new JLabel("\u6027\u522B");
        label.setBounds(10, 130, 54, 15);
        contentPane.add(label);
        
        comboBox_1 = new JComboBox(getProvice());
        comboBox_1.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent e) {
                if(e.getStateChange() == ItemEvent.SELECTED){
                    iteamChange();
                    
                    }
            }
        });
        
        /*
         * 1     JComboBox():建立一个新的JComboBox组件。
2     JComboBox(ComboBoxModel aModel):用ListModel建立一个新的JComboBox组件。
3     JComboBox(Object[] items):利用Array对象建立一个新的JComboBox组件。
4     JComboBox(Vector items):利用Vector对象建立一个新的JComboBox组件。
         */
        //comboBox_1.addItem(getProvice());
        
        comboBox_1.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent arg0) {
                //
            }
        });
        comboBox_1.setBounds(92, 163, 195, 21);
        contentPane.add(comboBox_1);
        
        JLabel label_1 = new JLabel("\u7701\u4EFD");
        label_1.setBounds(10, 166, 54, 15);
        contentPane.add(label_1);
        
        JLabel label_2 = new JLabel("\u57CE\u5E02");
        label_2.setBounds(10, 198, 54, 15);
        contentPane.add(label_2);
        
        comboBox_2 = new JComboBox();
        comboBox_2.setBounds(92, 195, 195, 21);
        contentPane.add(comboBox_2);
        
        btnNewButton = new JButton("\u4FDD\u5B58");
        btnNewButton.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent arg0) {
                save();
            }
        });
        btnNewButton.setBounds(42, 228, 93, 23);
        contentPane.add(btnNewButton);
        
        btnNewButton_1 = new JButton("\u91CD\u7F6E");
        btnNewButton_1.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent arg0) {
                try {
                    mapShowPlace frame = new mapShowPlace();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                };
            }
        });
        btnNewButton_1.setBounds(182, 228, 93, 23);
        contentPane.add(btnNewButton_1);
    }
    
    public static Map<String,String[]>model=new LinkedHashMap();
    private JTextField textField_2;
    private JTextField textField;
    private JTextField textField_1;
    private JComboBox comboBox;
    private JComboBox comboBox_1;
    private JComboBox comboBox_2;
    private JButton btnNewButton;
    private JButton btnNewButton_1;
    static
    {
        model.put("北京", new String[]{"北京"});
        model.put("上海", new String[]{"上海"});
        model.put("广州", new String[]{"广州"});
        
    }
    public Object[] getProvice()
    {
        Map<String, String[]>map=mapShowPlace.model;
        Set<String>set=map.keySet();
        Object[]provice=set.toArray();
        return provice;
        
    }
    private void iteamChange()
    {
        String selectProvince=(String)comboBox_1.getSelectedItem();
        comboBox_2.removeAllItems();
        String[] arrCity=getCity(selectProvince);
        comboBox_2.setModel(new DefaultComboBoxModel<>(arrCity));
        
    }
    public String[] getCity(String selectProvice)
    {
        Map<String, String[]>map=mapShowPlace.model;
        String[]arrCity=map.get(selectProvice);
        /*
        for (String string : arrCity) {
            System.out.println(string);
        }
        */
        return arrCity;
    }
    public void save()
    {
        try{
            PrintStream out=System.out;//获取当前输出位置
            PrintStream ps=new PrintStream("./register.txt");//获取目标输出位置
            System.setOut(ps);//设置输出位置
            String name=textField.getText();
            String place=textField_1.getText();
            String emial=textField_2.getText();
            String sex=(String)comboBox.getSelectedItem();
            String proverce=(String)comboBox_1.getSelectedItem();
            String city=(String)comboBox_2.getSelectedItem();
            System.out.println("姓名:"+name+"地址:"+place+"emial:"+emial+"性别:"+sex+"省份:"+proverce+"城市:"+city);
            System.setOut(out);//还原输出位置
            System.out.println("save succes in ./register.rtxt");
        }
        catch (FileNotFoundException e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值