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