实验十二:SWING界面设计

时间:2023-01-28 15:01:04

实验代码:

 1 package ji;
 2 
 3 import java.awt.FlowLayout;
 4 import java.awt.GridLayout;
 5 import java.awt.event.ActionEvent;
 6 import java.awt.event.ActionListener;
 7 import java.awt.event.ComponentListener;
 8 
 9 import javax.swing.ButtonGroup;
10 import javax.swing.JComboBox;
11 import javax.swing.JFrame;
12 import javax.swing.JLabel;
13 import javax.swing.JPanel;
14 import javax.swing.JRadioButton;
15 import javax.swing.JTextField;
16 
17 public class Ji extends JFrame implements ComponentListener,ActionListener{
18 private JRadioButton[] radios;
19 private JComboBox<String> province,city,profession,college;
20 private static String[] provinces= {"山东","枣庄"};
21 private static String[][] professional= {{"网络工程","物联网工程","计算机科学与技术"},{"社会学","社会工作学"}};
22 private static String[] colleges= {"计算机学院","法社学院"};
23 private static String[][] cities= {{"济南","青岛","枣庄"},{"西宁","海东","海西"}};
24 public Ji(){
25 this.setBounds(300,240,360,120);
26 this.setDefaultCloseOperation(EXIT_ON_CLOSE);
27 this.addComponentListener(this);
28 
29 //输入姓名
30 this.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT));
31 this.getContentPane().add(new JLabel("姓名",JLabel.CENTER));
32 this.getContentPane().add(new JTextField("张灿"));
33 
34 //选择性别
35 String[] sex= {"男","女"};
36 JPanel jp=new JPanel(new GridLayout(1,2));
37 this.add(jp);
38 ButtonGroup bg=new ButtonGroup();
39 this.radios=new JRadioButton[sex.length];
40 for(int i=0;i<this.radios.length;i++) {
41 jp.add(this.radios[i]=new JRadioButton(sex[i]));
42 bg.add(this.radios[i]);
43 }
44 //选择省份
45 this.getContentPane().add(new JLabel("籍贯",JLabel.CENTER));
46 this.add(this.province=new JComboBox<String>(Ji.provinces));
47 this.add(this.city=new JComboBox<String>(Ji.cities[0]));
48 this.province.addActionListener(this);
49 
50 //输入学号
51 this.getContentPane().add(new JLabel("学号",JLabel.CENTER));
52 this.getContentPane().add(new JTextField("20173311102"));
53 
54 //选择学院专业
55 this.getContentPane().add(new JLabel("学院",JLabel.CENTER));
56 this.add(this.college=new JComboBox<String>(Ji.colleges));
57 this.getContentPane().add(new JLabel("专业",JLabel.CENTER));
58 this.add(this.profession=new JComboBox<String>(Ji.professional[0]));
59 this.province.addActionListener(this);
60 //可视化
61 this.setVisible(true);
62 
63 }
64 //动作事件处理
65 public void actionPerformed(ActionEvent event) {
66 int i=this.province.getSelectedIndex();
67 if(cities!=null&&i!=1) {
68 this.city.removeAllItems();
69 for(int j=0;j<Ji.cities[i].length;j++)
70 this.city.addItem(Ji.cities[i][j]);
71 }
72 int k=this.college.getSelectedIndex();
73 if(professional!=null&&k!=1) {
74 this.profession.removeAllItems();
75 for(int l=0;l<Ji.professional[k].length;l++)
76 this.city.addItem(Ji.professional[k][l]);
77 }
78 
79 public static void main(String[] args) {
80 new Ji();
81 
82 }
83 
84 }

实验结果:

实验十二:SWING界面设计