天天看點

(個人筆記)JTable使用

JTable講解[JTable_test1.java]

import javax.swing.*;

import java.util.*;

import java.sql.*;

import java.awt.*;

import java.awt.event.*;

public class JTable_Test1 extends JFrame{

    //定義元件

    //rowData用來存放行資料、columnNames存放列名

    Vector rowData,columnNames;

    JTable jt=null;

    JScrollPane jsp=null;

    public static void main(String[] args) {

        JTable_Test1 sms=new JTable_Test1();

    }

    //構造函數

    public JTable_Test1(){

        columnNames=new Vector<>();

        //設定列名

        columnNames.add("學号");

        columnNames.add("名字");

        columnNames.add("性别");

        columnNames.add("年齡");

        columnNames.add("籍貫");

        columnNames.add("系别");

        rowData=new Vector<>();

        //rowData可以存放多行

        Vector hang=new Vector<>();

        hang.add("sp001");

        hang.add("孫悟空");

        hang.add("男");

        hang.add("500");

        hang.add("花果山");

        hang.add("少林派");

        //加入rowData

        rowData.add(hang);

        //初始化JTable

        jt=new JTable(rowData,columnNames);

        //初始化jsp JScrollPane

        jsp=new JScrollPane(jt);

        //把jsp放入到jframe

        this.add(jsp);

        this.setSize(400, 300);

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.setVisible(true);

    }

}

-------------------------------------------------------------------------------

JTable與資料庫的使用[JTable_test2.java]

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Vector;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTable;

public class JTable_Test2 extends JFrame{

    //定義元件

    //rowData用來存放行資料、columnNames存放列名

    Vector rowData,columnNames;

    JTable jt=null;

    JScrollPane jsp=null;

    //定義操作資料庫需要的元件

    PreparedStatement ps=null;

    Connection ct=null;

    ResultSet rs=null;

    public static void main(String[] args) {

        new JTable_Test2();

    }

    public JTable_Test2(){

        columnNames=new Vector<>();

        //設定列名

        columnNames.add("學号");

        columnNames.add("名字");

        columnNames.add("性别");

        columnNames.add("年齡");

        columnNames.add("籍貫");

        columnNames.add("系别");

        rowData=new Vector<>();

        //rowData可以存放多行

        try {

            //1、加載驅動

            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

            //2、得到連接配接

        ct=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=stussystem;user=sa;password=sa;");

            if(!ct.isClosed()){

                System.out.println("資料庫連接配接成功");

            }else{

                System.out.println("資料庫連接配接失敗");

            }

            ps=ct.prepareStatement("select * from stu");

            rs=ps.executeQuery();

            while(rs.next()){

                Vector hang=new Vector();

                hang.add(rs.getString(1));

                hang.add(rs.getString(2));

                hang.add(rs.getString(3));

                hang.add(rs.getInt(4));

                hang.add(rs.getString(5));

                hang.add(rs.getString(6));

                //加入rowData

                rowData.add(hang);

            }

        } catch (Exception e) {

            e.printStackTrace();

        }finally{

            try {

                if(rs!=null){

                    rs.close();

                }

                if(ps!=null){

                    ps.close();

                }

                if(ct!=null){

                    ct.close();

                }

            } catch (SQLException e) {

                e.printStackTrace();

            }

        }

        //初始化JTable

        jt=new JTable(rowData,columnNames);

        //初始化jsp JScrollPane

        jsp=new JScrollPane(jt);

        //把jsp放入到jframe

        this.add(jsp);

        this.setSize(400, 300);

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.setVisible(true);

    }

}