实验十八 总复习
实验时间 2018-12-30
1、实验目的与要求
(1) 综合掌握java基本程序结构;
(2) 综合掌握java面向对象程序设计特点;
(3) 综合掌握java GUI 程序设计结构;
(4) 综合掌握java多线程编程模型;
(5) 综合编程练习。
2、实验内容和步骤
任务1:填写课程课后调查问卷,网址:https://www.wjx.cn/jq/33108969.aspx。
任务2:综合编程练习
练习1:设计一个用户信息采集程序,要求如下:
(1) 用户信息输入界面如下图所示:
(1)用户点击提交按钮时,用户输入信息显示控制台界面;
(2)用户点击重置按钮后,清空用户已输入信息;
(3)点击窗口关闭,程序退出。

1 package AA;
2
3 import java.awt.Dimension; 4 import java.awt.Toolkit; 5 import java.awt.Window; 6 7 public class WinCenter { 8 public static void center(Window win){ 9 Toolkit tkit = Toolkit.getDefaultToolkit(); 10 Dimension sSize = tkit.getScreenSize(); 11 Dimension wSize = win.getSize(); 12 if(wSize.height > sSize.height){ 13 wSize.height = sSize.height; 14 } 15 if(wSize.width > sSize.width){ 16 wSize.width = sSize.width; 17 } 18 win.setLocation((sSize.width - wSize.width)/ 2, (sSize.height - wSize.height)/ 2); 19 } 20 }

1 package AA;
2
3 import java.awt.Dimension; 4 import java.awt.FlowLayout; 5 import java.awt.GridLayout; 6 7 import javax.swing.BorderFactory; 8 import javax.swing.ButtonGroup; 9 import javax.swing.JButton; 10 import javax.swing.JCheckBox; 11 import javax.swing.JComboBox; 12 import javax.swing.JFrame; 13 import javax.swing.JLabel; 14 import javax.swing.JPanel; 15 import javax.swing.JRadioButton; 16 import javax.swing.JTextField; 17 18 public class DemoJFrame extends JFrame { 19 private JPanel jPanel1; 20 private JPanel jPanel2; 21 private JPanel jPanel3; 22 private JPanel jPanel4; 23 private JTextField fieldname; 24 private JComboBox comboBox; 25 private JTextField fieldadress; 26 private ButtonGroup bg; 27 private JRadioButton Male; 28 private JRadioButton Female; 29 private JCheckBox read; 30 private JCheckBox sing; 31 private JCheckBox dance; 32 33 public DemoJFrame() { 34 // 设置窗口大小 35 this.setSize(800, 400); 36 // 设置可见性 37 this.setVisible(true); 38 // 设置标题 39 this.setTitle("编程练习一"); 40 // 设置关闭操作 41 this.setDefaultCloseOperation(EXIT_ON_CLOSE); 42 // 设置窗口居中 43 WinCenter.center(this); 44 // 创建四个面板对象 45 jPanel1 = new JPanel(); 46 setJPanel1(jPanel1); 47 jPanel2 = new JPanel(); 48 setJPanel2(jPanel2); 49 jPanel3 = new JPanel(); 50 setJPanel3(jPanel3); 51 jPanel4 = new JPanel(); 52 setJPanel4(jPanel4); 53 // 设置容器的为流布局 54 FlowLayout flowLayout = new FlowLayout(); 55 this.setLayout(flowLayout); 56 // 将四个面板添加到容器中 57 this.add(jPanel1); 58 this.add(jPanel2); 59 this.add(jPanel3); 60 this.add(jPanel4); 61 62 } 63 64 /* 65 * 设置面一 66 */ 67 private void setJPanel1(JPanel jPanel) { 68 // TODO 自动生成的方法存根 69 jPanel.setPreferredSize(new Dimension(700, 45)); 70 // 给面板的布局设置为网格布局 一行4列 71 jPanel.setLayout(new GridLayout(1, 4)); 72 73 JLabel name = new JLabel("name:"); 74 name.setSize(100, 50); 75 fieldname = new JTextField(""); 76 fieldname.setSize(80, 20); 77 78 JLabel study = new JLabel("qualification:"); 79 comboBox = new JComboBox(); 80 comboBox.addItem("初中"); 81 comboBox.addItem("高中"); 82 comboBox.addItem("本科"); 83 jPanel.add(name); 84 jPanel.add(fieldname); 85 jPanel.add(study); 86 jPanel.add(comboBox); 87 88 } 89 90 /* 91 * 设置面板二 92 */ 93 private void setJPanel2(JPanel jPanel) { 94