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();
}
}
}