用List传递学生信息

集合在程序开发中经常用到,例如,在业务方法中将学生信息、商品信息等存储到集合中,然后作为方法的返回值返回给调用者,以此传递大量的有序数据。

本实例将使用List集合在方法之间传递学生的信息。实例效果如下:

用List传递学生信息用List传递学生信息

设计过程

1)在项目中新建窗体类ClassInfo。 在窗体中添加JScrollPane,再在JScrollPane中放置表格控件JTable。

2)编写getTable()方法。在该方法中创建表格对象并设置表格的数据模型,然后调用getStudents()方法获取学生信息的集合对象,

在遍历该集合对象的同时,把每个元素添加到表格模型的行,并显示到表格控件中。

 private JTable getTable() {
       if (table == null) {
           table = new JTable();// 创建表格控件
           table.setRowHeight(23);// 设置行高度
           String[] columns = { "姓名", "性别", "出生日期" };// 创建列名数组
           // 创建表格模型
           DefaultTableModel model = new DefaultTableModel(columns, 0);
           table.setModel(model);// 设置表格模型
           List<String> students = getStudents();// 调用方法传递list集合对象
           for (String info : students) {// 遍历学生集合对象
               String[] args = info.split(",");// 把学生信息拆分为数组
               model.addRow(args);// 把学生信息添加到表格的行
           }
       }
       return table;
   }  

3)编写getStudents()方法,该方法将向调用者传递List集合对象,并为集合对象添加多个元素,每个元素值都是一个学生信息,其中包括姓名、性别、出生日期。

 private List<String> getStudents(){
         //创建List集合对象
         List<String> list = new ArrayList<String>();
         list.add("钱东强,男,1990-1-4");//字符串之间用英文的逗号隔开
         list.add("孙西,女,1990-1-4");
         list.add("周五燕,男,1990-1-4");
         list.add("王东,女,1990-1-4");
         list.add("冯晓,男,1990-1-4");
         list.add("陈玉山,女,1990-1-4");
         list.add("蒋钦大,男,1990-1-4");
         return list;  

     }     

完整代码

 package cn.str.opera;  

 import java.awt.BorderLayout;  

 public class ClassInfo extends JFrame {  

     private JPanel contentPane;
     private JTable table;  

     /**
      * Launch the application.
      */
     public static void main(String[] args) {  

            try {
                 UIManager
                         .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
             } catch (Throwable e) {
                 e.printStackTrace();
             }
         EventQueue.invokeLater(new Runnable() {
             public void run() {
                 try {
                     ClassInfo frame = new ClassInfo();
                     frame.setVisible(true);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
             }
         });
     }  

     /**
      * Create the frame.
      */
     public ClassInfo() {
         getContentPane().setLayout(new BorderLayout(0, 0));
         setTitle("\u7528List\u96C6\u5408\u4F20\u9012\u5B66\u751F\u4FE1\u606F");
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         setBounds(100, 100, 450, 300);
         contentPane = new JPanel();
         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
         contentPane.setLayout(new BorderLayout(0, 0));
         setContentPane(contentPane);  

         JScrollPane scrollPane = new JScrollPane();
         contentPane.add(scrollPane,BorderLayout.CENTER);
         scrollPane.setViewportView(getTable());  

     }  

     private JTable getTable() {
         if(table == null){
             table = new JTable();//创建表格控件
             table.setRowHeight(23);
             String[] columns = {"姓名","性别","出生日期"};//创建列名数组
             //创建表格模型
             DefaultTableModel model = new DefaultTableModel(columns,0);
             table.setModel(model);//设置表格模型
             List<String> students = getStudents();
             for(String info:students){// 遍历学生集合对象
                 String[] args = info.split(",");// 按英文逗号,把学生信息拆分为数组
                 model.addRow(args);
             }     

         }
         return table;
     }  

     private List<String> getStudents(){
         //创建List集合对象
         List<String> list = new ArrayList<String>();
         list.add("钱东强,男,1990-1-4");//字符串之间用英文的逗号隔开
         list.add("孙西,女,1990-1-4");
         list.add("周五燕,男,1990-1-4");
         list.add("王东,女,1990-1-4");
         list.add("冯晓,男,1990-1-4");
         list.add("陈玉山,女,1990-1-4");
         list.add("蒋钦大,男,1990-1-4");
         return list;  

     }     

 }  
上一篇:快速开发平台分享-UCML快速开发七种武器


下一篇:Android 中R文件丢失问题解决方案