集合在程序开发中经常用到,例如,在业务方法中将学生信息、商品信息等存储到集合中,然后作为方法的返回值返回给调用者,以此传递大量的有序数据。
本实例将使用list集合在方法之间传递学生的信息。实例效果如下:
设计过程
1)在项目中新建窗体类classinfo。 在窗体中添加jscrollpane,再在jscrollpane中放置表格控件jtable。
2)编写gettable()方法。在该方法中创建表格对象并设置表格的数据模型,然后调用getstudents()方法获取学生信息的集合对象,
在遍历该集合对象的同时,把每个元素添加到表格模型的行,并显示到表格控件中。
1 private jtable gettable() {
2 if (table == null) {
3 table = new jtable();// 创建表格控件 4 table.setrowheight(23);// 设置行高度 5 string[] columns = { 姓名, 性别, 出生日期 };// 创建列名数组
6 // 创建表格模型 7 defaulttablemodel model = new defaulttablemodel(columns, 0);
8 table.setmodel(model);// 设置表格模型 9 list<string> students = getstudents();// 调用方法传递list集合对象 10 for (string info : students) {// 遍历学生集合对象 11 string[] args = info.split(,);// 把学生信息拆分为数组 12 model.addrow(args);// 把学生信息添加到表格的行 13 }
14 }
15 return table;
16 }
3)编写getstudents()方法,该方法将向调用者传递list集合对象,并为集合对象添加多个元素,每个元素值都是一个学生信息,其中包括姓名、性别、出生日期。
1 private list<string> getstudents(){
2 //创建list集合对象 3 list<string> list = new arraylist<string>();
4 list.add(钱东强,男,1990-1-4);//字符串之间用英文的逗号隔开 5 list.add(孙西,女,1990-1-4);
6 list.add(周五燕,男,1990-1-4);
7 list.add(王东,女,1990-1-4);
8 list.add(冯晓,男,1990-1-4);
9 list.add(陈玉山,女,1990-1-4);
10 list.add(蒋钦大,男,1990-1-4);
11 return list;
12 13 }
完整代码
1 package cn.str.opera;
2 3 import java.awt.borderlayout;
4 5 public class classinfo extends jframe {
6 7 private jpanel contentpane;
8 private jtable table;
9 10 /** 11 * launch the application.
12 */ 13 public static void main(string[] args) {
14 15 try {
16 uimanager
17 .setlookandfeel(com.sun.java.swing.plaf.nimbus.nimbuslookandfeel);
18 } catch (throwable e) {
19 e.printstacktrace();
20 }
21 eventqueue.invokelater(new runnable() {
22 public void run() {
23 try {
24 classinfo frame = new classinfo();
25 frame.setvisible(true);
26 } catch (exception e) {
27 e.printstacktrace();
28 }
29 }
30 });
31 }
32 33 /** 34 * create the frame.
35 */ 36 public classinfo() {
37 getcontentpane().setlayout(new borderlayout(0, 0));
38 settitle(\u7528list\u96c6\u5408\u4f20\u9012\u5b66\u751f\u4fe1\u606f);
39 setdefaultcloseoperation(jframe.exit_on_close);
40 setbounds(100, 100, 450, 300);
41 contentpane = new jpanel();
42 contentpane.setborder(new emptyborder(5, 5, 5, 5));
43 contentpane.setlayout(new borderlayout(0, 0));
44 setcontentpane(contentpane);
45 46 47 jscrollpane scrollpane = new jscrollpane();
48 contentpane.add(scrollpane,borderlayout.center);
49 scrollpane.setviewportview(gettable());
50 51 }
52 53 private jtable gettable() {
54 if(table == null){
55 table = new jtable();//创建表格控件 56 table.setrowheight(23);
57 string[] columns = {姓名,性别,出生日期};//创建列名数组
58 //创建表格模型 59 defaulttablemodel model = new defaulttablemodel(columns,0);
60 table.setmodel(model);//设置表格模型 61 list<string> students = getstudents();
62 for(string info:students){// 遍历学生集合对象 63 string[] args = info.split(,);// 按英文逗号,把学生信息拆分为数组 64 model.addrow(args);
65 }
66 67 }
68 return table;
69 }
70 71 private list<string> getstudents(){
72 //创建list集合对象 73 list<string> list = new arraylist<string>();
74 list.add(钱东强,男,1990-1-4);//字符串之间用英文的逗号隔开 75 list.add(孙西,女,1990-1-4);
76 list.add(周五燕,男,1990-1-4);
77 list.add(王东,女,1990-1-4);
78 list.add(冯晓,男,1990-1-4);
79 list.add(陈玉山,女,1990-1-4);
80 list.add(蒋钦大,男,1990-1-4);
81 return list;
82 83 }
84 85 }
以上就是教你如何用list进行学生信息传递的详细内容。
