用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; } }
用List传递学生信息的更多相关文章
- Ligerui Grid组件--学生信息列表
一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭建 4.Ligerui Grid组件--学生信 ...
- JAVA课程设计-学生信息管理系统(个人博客)
1. 团队课程设计博客链接 http://www.cnblogs.com/Min21/p/7064093.html 2.个人负责模块或任务说明 负责person类的编写,建立person对象, 完成M ...
- node.js(小案例)_实现学生信息增删改
一.前言 本节内容主要对小案例做一个总结: 1.如何开始搭建小项目 2.路由设计 3.模块应用 4.项目源码以及实现过程github地址: 项目演示如下: 二.主要内容 1.项目的关键性js源码: 项 ...
- java操作数据库,以页面显示学生信息为例
该部分内容实现的功能主要是:从数据库中查询数据并展示到页面,在页面中新增数据信息,在页面中修改数据信息,在页面中删除数据信息. =================stuList.jsp======== ...
- 数据结构(c语言)之学生信息管理系统
程序思维导图 代码表示(代码参考:长春大学-牛言涛老师) 如有错误请指出欢迎交流 #include<stdio.h> #include<malloc.h>//动态存储分配函数头 ...
- 基于数据库MySQL的简易学生信息管理系统
通过这几天学习Mysql数据库,对其也有了基本的了解,为了加深印象,于是就写了一个最简易的学生信息管理系统. 一:基本要求 1.通过已知用户名和密码进行登录: 2.可以显示菜单: 3.可以随时插入学生 ...
- 学生信息管理系统(自己辛辛苦苦做了几天,虽然简陋,也凑合吧,bug不算太严重,主要是格式不太很完美)
/*学生成绩管理系统V3.0(链表版)某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).使用链表编程成实现如下菜单驱动的学生成绩管理系统.1.从文件读入每 ...
- C#复习(学生信息输入)
在控制台程序中使用结构体.集合,完成下列要求项目要求:一.连续输入5个学生的信息,每个学生都有以下4个内容:1.序号 - 根据输入的顺序自动生成,不需要手动填写,如输入第一个学生的序号是1,第二个是2 ...
- C++ 简单的学生信息管理系统
// // main.cpp // 2013-7-17作业1 // // Created by 丁小未 on 13-7-17. // Copyright (c) 2013年 dingxiaowei. ...
随机推荐
- RTMP协议中文翻译(首发)
翻译:阿宝 更新:2016-09-11 来源:彩色世界(https://blog.hz601.org/2016/07/03/real-time-messaging-protocol/index.htm ...
- js运算
今天把五个题目都做出来了,虽然可能用的方法比较麻烦.不过总体来说不错: <!DOCTYPE html><html> <head> <meta charset= ...
- koa2 controller中实现类似sleep的延迟功能
今天有同事问我如何在koa2中的controller中使用延迟执行的功能,他直接在controller中使用setTimeout,但是没效果. 错误的代码类似下面这样: // 错误的方法 export ...
- 新瓶装旧酒:全程无命令 GitHub Pages 创建您的博客站点
使用 GitHub Pages 创建博客站点的文章很多,也有很长的历史了.但是,许多已经与当前的 GitHub 不一致了,如果你按图索骥,会发现驴唇对不上马嘴. 更为麻烦的是,你会发现或者需要你输入许 ...
- 【Linux 网络】网络测试命令 长期更新
一.网络测试命令 1.测试 网络连接 发送两包后停发 [oracle@hadoop ~]$ PING www.a.shifen.com (() bytes of data. bytes from tt ...
- VMware Workstation 12 Pro 之安装Windows10 EP系统
VMware Workstation 12 Pro 之安装Windows10 EP系统... --------------- 先准备好要用的Win10的镜像文件ISO ---------------- ...
- Hibernate级联操作解密(inverse和cascade)
总结: Cascade:对级联操作进行限制,有如下几个参数: all : 所有情况下均进行关联操作. none:所有情况下均不进行关联操作.这是默认值. save-update:在执行save/u ...
- emacs命令记录
C-代表按住Ctrl键 M-代表按住Alt键,也可以用按一下ESC放开代替 最先要记住的 M-x <cmd> 输入指令执行,在输入时用Tab可以自动补全或列出项目 C-g ...
- geotrellis使用(三十一)使用geotrellis直接将GeoTiff发布为TMS服务
前言 传统上我们需要先将Tiff中存储的影像等数据先切割成瓦片,而后再对外提供服务.这样的好处是服务器响应快,典型的用空间来换时间的操作.然而这样造成的问题是空间的巨大浪费,一般情况下均需要存储1-1 ...
- python链接MySQLdb报错:2003
使用python链接Mysql数据库操作,遇到问题! 问题如图所示: 解决方法:将"localhost"改为"127.0.0.1" db=MySQLdb.con ...