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();
		}
	}
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM