黑马程序员技术交流社区

标题: 一个GUI的小实验,欢迎大家交流 [打印本页]

作者: 马也keyboard    时间: 2015-6-23 22:53
标题: 一个GUI的小实验,欢迎大家交流
  1. import java.awt.BorderLayout;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.awt.event.WindowAdapter;
  5. import java.awt.event.WindowEvent;
  6. import java.util.ArrayList;
  7. import java.util.Collections;
  8. import java.util.Comparator;
  9. import java.util.Iterator;
  10. import javax.swing.JButton;
  11. import javax.swing.JFrame;
  12. import javax.swing.JLabel;
  13. import javax.swing.JPanel;
  14. import javax.swing.JTextArea;
  15. import javax.swing.JTextField;


  16. public class Test {
  17.        
  18.         private static JFrame f_all;
  19.         private JFrame f_insert;
  20.         private JFrame f_check;
  21.        
  22.         //all组件
  23.         private static JButton btn_insert;
  24.         private static JButton btn_check;
  25.         private static JButton btn_sort;
  26.         private static JTextArea txtArea;
  27.        
  28.         //insert组件
  29.         private static JButton btn_insert_ensure;
  30.         private static JTextField txt_id;
  31.         private static JTextField txt_num;
  32.        
  33.         //check组件
  34.         private static JButton btn_check_ensure;
  35.         private static JTextField txt_id_in;
  36.         private static JLabel lab_num;
  37.        
  38.        
  39.         private static ArrayList<Student> array;
  40.        
  41.         public void myEvent()
  42.         {
  43.                 f_all.addWindowListener(new WindowAdapter() {
  44.                         public void windowClosing(WindowEvent e)
  45.                         {
  46.                                 System.exit(0);
  47.                         }
  48.                 });
  49.                
  50.                 btn_insert.addActionListener(new ActionListener() {
  51.                         public void actionPerformed(ActionEvent e)
  52.                         {
  53.                                 init_insert();
  54.                         }
  55.                 });
  56.                
  57.                 btn_insert_ensure.addActionListener(new ActionListener() {
  58.                         public void actionPerformed(ActionEvent e)
  59.                         {
  60.                                 String str_id = txt_id.getText().toString();
  61.                                 String str_num = txt_num.getText().toString();
  62.                                
  63.                                 if(str_id != "")
  64.                                 {
  65.                                         if(str_num != "")
  66.                                         {
  67.                                                 int num = Integer.parseInt(str_num);
  68.                                                 array.add(new Student(str_id,num));
  69.                                                 txt_id.setText("");
  70.                                                 txt_num.setText("");
  71.                                         }
  72.                                 }
  73.                         }
  74.                 });
  75.                
  76.                 btn_check.addActionListener(new ActionListener() {
  77.                         public void actionPerformed(ActionEvent e)
  78.                         {
  79.                                 init_check();
  80.                         }
  81.                 });
  82.                
  83.                 btn_check_ensure.addActionListener(new ActionListener() {
  84.                         public void actionPerformed(ActionEvent e)
  85.                         {
  86.                                 String str_id = txt_id_in.getText().toString();
  87.                                 Iterator<Student> it = array.iterator();
  88.                                
  89.                                 //判断数据是否有效
  90.                                 boolean flag = false;
  91.                                
  92.                                 while(it.hasNext())
  93.                                 {
  94.                                         Student stu = it.next();
  95.                                         String id = stu.getId();
  96.                                         int num = stu.getNum();
  97.                                         if(id.equals(str_id))
  98.                                         {
  99.                                                 lab_num.setText(num+"");
  100.                                                 flag = true;
  101.                                         }
  102.                                 }
  103.                                 if(!flag)
  104.                                 {
  105.                                         lab_num.setText("不存在查询学号");
  106.                                 }
  107.                         }
  108.                 });
  109.                
  110.                
  111.                 btn_sort.addActionListener(new ActionListener() {
  112.                         public void actionPerformed(ActionEvent e)
  113.                         {
  114.                                 Collections.sort(array, new myCompare());
  115.                                 Iterator<Student> it = array.iterator();
  116.                                 StringBuffer str = new StringBuffer();
  117.                                 while(it.hasNext())
  118.                                 {
  119.                                         Student stu = it.next();
  120.                                         String id = stu.getId();
  121.                                         int num = stu.getNum();
  122.                                         str.append(id+"::"+num+System.getProperty("line.separator"));
  123.                                 }
  124.                                 String string = str.toString();
  125.                                 txtArea.setText(string);
  126.                         }
  127.                 });
  128.                
  129.         }
  130. //整体布局
  131.         public void init_all()
  132.         {
  133.                 btn_insert = new JButton("输入");
  134.                 btn_check = new JButton("查询");
  135.                 btn_sort = new JButton("排序");
  136.                 txtArea = new JTextArea(6,20);
  137.                
  138.                 //布局
  139.                 JPanel jp1 = new JPanel();
  140.                 JPanel jp2 = new JPanel();
  141.                
  142.                 //组件加入布局
  143.                 jp1.add(btn_insert);
  144.                 jp1.add(btn_check);
  145.                 jp1.add(btn_sort);
  146.                 jp2.add(txtArea);
  147.                
  148.                 f_all = new JFrame();
  149.                 f_all.setBounds(300, 200, 300, 200);
  150.                 f_all.setLayout(new BorderLayout());
  151.                 f_all.add(jp1,BorderLayout.NORTH);
  152.                 f_all.add(jp2,BorderLayout.CENTER);
  153.                
  154.                 jp1.setVisible(true);
  155.                 jp2.setVisible(true);
  156.                
  157.                 f_all.setResizable(false);
  158.                 f_all.setVisible(true);
  159.         }
  160.        
  161. //输入布局       
  162.         public void init_insert()
  163.         {
  164.                 txt_id = new JTextField(5);
  165.                 txt_num = new JTextField(5);
  166.                
  167.                 JLabel jl1 = new JLabel("学号:");
  168.                 JLabel jl2 = new JLabel("成绩:");
  169.                
  170.                 JPanel p1 = new JPanel();
  171.                 JPanel p2 = new JPanel();
  172.                 JPanel p3 = new JPanel();
  173.                
  174.                 f_insert = new JFrame();
  175.                
  176.                 p1.add(jl1);
  177.                 p1.add(txt_id);
  178.                
  179.                 p2.add(jl2);
  180.                 p2.add(txt_num);
  181.                
  182.                 p3.add(btn_insert_ensure);
  183.                
  184.                 f_insert.setBounds(300, 200, 200, 150);
  185.                 f_insert.add(p1,BorderLayout.NORTH);
  186.                 f_insert.add(p2,BorderLayout.CENTER);
  187.                 f_insert.add(p3,BorderLayout.SOUTH);
  188.                
  189.                 f_insert.setResizable(true);
  190.                 f_insert.setVisible(true);

  191.         }
  192.        
  193. //查询布局
  194.         public void init_check()
  195.         {
  196.                 txt_id_in = new JTextField(5);
  197.                
  198.                 lab_num = new JLabel();
  199.                
  200.                 JLabel jl1 = new JLabel("学号:");
  201.                
  202.                 JPanel p1 = new JPanel();
  203.                
  204.                 p1.add(jl1);
  205.                 p1.add(txt_id_in);
  206.                
  207.                 f_check = new JFrame();
  208.                 f_check.setBounds(300, 200, 200, 150);
  209.                
  210.                 f_check.add(p1,BorderLayout.NORTH);
  211.                 f_check.add(btn_check_ensure,BorderLayout.CENTER);
  212.                 f_check.add(lab_num,BorderLayout.SOUTH);
  213.                
  214.                 f_check.setResizable(false);
  215.                 f_check.setVisible(true);
  216.         }
  217.        
  218.        
  219.         public static void main(String[] args)
  220.         {
  221.                 Test t = new Test();
  222.                 t.btn_insert_ensure = new JButton("输入");
  223.                 t.btn_check_ensure = new JButton("查询");
  224.                 array = new ArrayList<Student>();
  225.                 t.init_all();
  226.                
  227.                 t.myEvent();
  228.                 System.out.println(array);
  229.         }
  230. }


  231. class Student
  232. {
  233.         private String id;
  234.         private int num;
  235.         public Student(String id, int num) {
  236.                 super();
  237.                 this.id = id;
  238.                 this.num = num;
  239.         }
  240.         public String getId() {
  241.                 return id;
  242.         }
  243.         public void setId(String id) {
  244.                 this.id = id;
  245.         }
  246.         public int getNum() {
  247.                 return num;
  248.         }
  249.         public void setNum(int num) {
  250.                 this.num = num;
  251.         }
  252.          
  253. }

  254. class myCompare implements Comparator<Student>
  255. {
  256.         public int compare(Student stu1, Student stu2) {
  257.                
  258.                 int num1 = stu1.getNum();
  259.                 int num2 = stu2.getNum();
  260.                 if(num1 == num2)
  261.                 {
  262.                         return stu1.getId().compareTo(stu2.getId());
  263.                 }
  264.                 return num1-num2;
  265.         }
  266. }




复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2