Java课程设计---浏览学生(表格的使用)

1、创建显示表格的窗体

  

package com.student.view;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;

/*
 * 项目名称: 
 * 
 * 文件名称为:ShowStudent.java
 * 文件创建人:daxiang
 * 
 * @author daxiang
 * @version 
 * @time  2018年6月22日 上午8:03:24
 * @copyright daxiang
 */
public class ShowStudent extends JFrame {

	private JPanel contentPane;
	private JTable table;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ShowTable frame = new ShowTable();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public ShowStudent() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 682, 416);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		// 设置无布局
		contentPane.setLayout(null);
		// 创建滚动面板
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(27, 74, 603, 221);
		contentPane.add(scrollPane);
		// 创建表格
		table = new JTable();
		// 设置表格内容
		table.setModel(new DefaultTableModel(new Object[][] { { null, null,
				null, null, null }, }, new String[] { "序号", "学号", "姓名", "性别",
				"班级" }));
		// 将表格加载到滚动面板
		scrollPane.setViewportView(table);
	}
}

  

这时已经将显示窗体创建成功,下面展示如何将数据库中的数据查询出来显示到表格中

2、在StudentDao增加查询方法

  先从数据库中查询出所有的学生信息

  

	public List<Student> getAll()throws SQLException{
		DbUtil dbUtil = new DbUtil();
		String sql="select * from tb_student";
		ResultSet rs=dbUtil.executeQuery(sql);
		List<Student> list = new ArrayList<Student>();
		while(rs.next()){
			Student student = new Student();
			student.setId(rs.getInt("id"));
			student.setName(rs.getString("name"));
			student.setSex(rs.getString("sex"));
			student.setSno(rs.getString("sno"));
			student.setClassName(rs.getString("classname"));
			list.add(student);
		}
		return list;
	}

3、在StudentSerivce中增加查询服务

  在StudentDao提供了查询所有学生的操作,下面创建查询所有学生的服务

  

	public List<Student> getStudent() throws SQLException {
		StudentDao studentDao = new StudentDao();
		return studentDao.getAll();
	}

4、将查询出来的数据关联到表格

 

package com.student.view;

import java.awt.EventQueue;
import java.sql.SQLException;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import com.student.model.Student;
import com.student.service.StudentService;

/*
 * 项目名称: 
 * 
 * 文件名称为:ShowStudent.java
 * 文件创建人:daxiang
 * 
 * @author daxiang
 * @version 
 * @time  2018年6月22日 上午8:03:24
 * @copyright daxiang
 */
public class ShowStudent extends JFrame {

	private JPanel contentPane;
	private JTable table;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ShowTable frame = new ShowTable();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public ShowStudent() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 682, 416);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		// 设置无布局
		contentPane.setLayout(null);
		// 创建滚动面板
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(27, 74, 603, 221);
		contentPane.add(scrollPane);
		// 创建表格
		table = new JTable();
		// 将默认的加载数据去掉,重新定义个表头
		String[] head = new String[] { "序号", "学号", "姓名", "性别", "班级" };
		// 将表格加载到滚动面板
		scrollPane.setViewportView(table);
		try {
			// 创建服务
			StudentService service = new StudentService();
			// 查询出所有学生
			List<Student> list = service.getStudent();
			// 创建一个二维数组,5表示列数
			Object[][] data = new Object[list.size()][5];
			// 遍历
			for (int i = 0; i < list.size(); i++) {
				data[i][0] = list.get(i).getId();
				data[i][1] = list.get(i).getSno();
				data[i][2] = list.get(i).getName();
				data[i][3] = list.get(i).getSex();
				data[i][4] = list.get(i).getClassName();
			}
			// 将数据和表头封装
			DefaultTableModel datamoModel = new DefaultTableModel(data, head);
			// 将封装好的数据加载
			table.setModel(datamoModel);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

  

原文地址:https://www.cnblogs.com/daxiang2008/p/9202839.html