学生信息系统java课程设计Java组件实验报告班级:110612学号:110612112专业:网络工程姓名:xxxxxxx实验目的:1、掌握java 图形用户界面设计常用类及其各自重要方法的应用。
2、掌握java 事件处理模式并熟练掌握lable事件单选框和复选框处理的方法。
3、进一步掌握java AWT组件、Swing组件及事件编程的各种方法。
掌握事件监听和事件处理方法。
实验内容:1.编辑一个简单的学生信息系统。
2.要求第一行是姓名输入框。
3.第二行利用单选框来设置男女。
4.第三行是用复选框来设置四门课程。
5.最后需要把所有的学生信息输出。
实验代码:import java.awt.*;import java.awt.event.*;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import javax.swing.*;import javax.swing.border.*;public class StudentManager{ JFrame frame = new JFrame ("选课系统");JCheckBox jcb_en = new JCheckBox("英语");JCheckBox jcb_math = new JCheckBox("高数");JCheckBox jcb_sport = new JCheckBox("体育");JCheckBox jcb_physics = new JCheckBox("大物");JLabel jl_name=new JLabel("姓名:");JTextField jtb_name=new JTextField();JRadioButton jrb_male = new JRadioButton("男");JRadioButton jrb_female = new JRadioButton("女");private Map<String,String> classes=new HashMap<String,String>();JTextArea ta = new JTextArea(); //resultpublic static void main(String args[]){ StudentManager ts = new StudentManager();ts.go();}private String getClasses(){if(null==classes||classes.size()<1){return null;}else{StringBuilder sb=new StringBuilder();Collection<String> values=classes.values();Iterator<String> it=values.iterator();while(it.hasNext()){sb.append(it.next()+"、");}return "选的课程为:"+sb.toString().substring(0,sb.length()-1)+"。
";}}public void go(){JPanel jp_name = new JPanel();JPanel jp_sex=new JPanel();JPanel pa = new JPanel();JPanel pb = new JPanel();Border etched = BorderFactory.createEtchedBorder();jtb_name.setPreferredSize(new Dimension(100,30));jp_name.add(jl_name);jp_name.add(jtb_name);ButtonGroup bg_sex = new ButtonGroup();bg_sex.add(jrb_male);bg_sex.add(jrb_female);jrb_male.setSelected(true);jp_sex.add(jrb_male);jp_sex.add(jrb_female);Border border=BorderFactory.createTitledBorder(etched,"性别");jp_sex.setBorder(border);pa.add(jcb_math);pa.add(jcb_en);pa.add(jcb_physics);pa.add(jcb_sport);pa.setLayout(new GridLayout(1,0));border= BorderFactory.createTitledBorder(etched, "课程" );pa.setBorder(border);ItemListener il = new ItemListener(){ public void itemStateChanged(ItemEvent e){ JCheckBox cb = (JCheckBox) e.getSource();if (cb == jcb_math){ if(jcb_math.isSelected()){classes.put("math", jcb_math.getText());}else{classes.remove("math");}} else if (cb == jcb_en){ if(jcb_en.isSelected()){classes.put("en", jcb_en.getText());}else{classes.remove("en");}} else if (cb == jcb_physics){ if(jcb_physics.isSelected()){classes.put("physics", jcb_physics.getText());}else{classes.remove("physics");}} else if (cb == jcb_sport){ if(jcb_sport.isSelected()){classes.put("sport", jcb_sport.getText());}else{classes.remove("sport");}}getResult();}private void getResult() {StringBuilder sb=new StringBuilder();sb.append(jl_name.getText()+jtb_name.getText()+System.lineSeparator());sb.append("性别:");if(jrb_male.isSelected()){sb.append(jrb_male.getText());}else{sb.append(jrb_female.getText());}sb.append(System.lineSeparator());sb.append(getClasses());ta.setText(sb.toString());}};jcb_math.addItemListener(il);jcb_en.addItemListener(il);jcb_physics.addItemListener(il);jcb_sport.addItemListener(il);pb.setLayout(new GridLayout(0,1));pb.add(ta);Container cp = frame.getContentPane();cp.setLayout(new GridLayout(0,1));cp.add(jp_name);cp.add(jp_sex);cp.add(pa);cp.add(pb);frame.setResizable(false);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setVisible(true);}}实验结果:实验心得:通过本次课程设计,成功的完成了这个小型简单的系统的设计,在整个设计过程中我对JAVA使用和它强大的作用有了一个更深刻的认识,尽管这个系统很简单,但是它让我综合运用了这个学期所学的JAVA的很多内容,在此基础上,对JAVA的基础知识得到了更好的巩固。