JTable的使用

DbModel.java

package com.qysoft.system.jtable;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
import java.beans.*;
import java.sql.*;
public class DbModel extends javax.swing.table.AbstractTableModel{
    private Connection conn=null;
    private java.sql.Statement stmt=null;
    private ResultSet rs=null;
    public DbModel(String sql) {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=test";
            String USER = "sa"; // 根据你自己设置的数据库连接用户进行设置
            String PASSWORD = "000000"; // 根据你自己设置的数据库连接密码进行设置
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
            stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                        ResultSet.CONCUR_READ_ONLY);
            rs = stmt.executeQuery(sql);
        } catch (SQLException ex) {
        } catch (ClassNotFoundException ex) {
        }

    }

    public int getRowCount() {
        try {
            rs.last();
            return rs.getRow();
        } catch (SQLException ex) {
            return 0;
        }
    }

    public int getColumnCount() {

        try {
            return rs.getMetaData().getColumnCount();
        } catch (SQLException ex) {
            return 0;
        }
    }
public String getColumnName(int c)
    {
        try {
            return rs.getMetaData().getColumnName(c);
        } catch (SQLException ex) {
            return null;
        }
    }
    public Object getValueAt(int rowIndex, int columnIndex) {
        try {
            rs.absolute(rowIndex + 1);
            return rs.getObject(columnIndex + 1);
        } catch (SQLException ex) {
            ex.printStackTrace();
            return null;
        }
    }
}
MyFrame.java

package com.qysoft.system.jtable;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
import java.beans.*;
import java.awt.BorderLayout;
import java.awt.Rectangle;


public class MyFrame extends JFrame{
    public MyFrame() {
        this.setTitle("測試窗口");
        this.setSize(300,500);
        this.setLocation(200,200);
        try {
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    public static void main(String[] args) {
      MyFrame frame=new MyFrame();
      frame.setVisible(true);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    private void jbInit() throws Exception {
        jTable1=new JTable(new DbModel("select * from usertable"));
        this.getContentPane().setLayout(null);
        this.getContentPane().add(jPanel1, null);
        jButton2.setBounds(new Rectangle(223, 82, 90, 27));
        jButton2.setText("刪除");
        jButton1.setBounds(new Rectangle(221, 35, 91, 26));
        jButton1.setText("添加");
        this.getContentPane().add(jTable1);
        this.getContentPane().add(jButton1);
        this.getContentPane().add(jButton2);
        jTable1.setBounds(new Rectangle(16, 17, 156, 226));
        jPanel1.setBounds(new Rectangle(0, 0, 10, 300));
    }

    JPanel jPanel1 = new JPanel();
    JTable jTable1 =null;
    JButton jButton1 = new JButton();
    JButton jButton2 = new JButton();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JTable是Swing组件工具包中的一个表格控件,可以用于展示和编辑数据。使用JTable需要以下步骤: 1. 创建数据模型:JTable的数据模型是TableModel,可以使用DefaultTableModel或自定义TableModel来实现。TableModel定义了表格的行数、列数、列名和单元格数据等信息。 2. 创建JTable实例:使用TableModel创建JTable实例,并设置表格的大小和样式等属性。 3. 填充数据:将数据填充到TableModel中,JTable会自动显示数据。 4. 可选的添加表格监听器:可以添加TableModelListener来监听表格数据的变化,或添加SelectionListener来监听用户选择行或列的事件。 以下是一个简单的JTable使用例子: ```java import javax.swing.*; import javax.swing.table.DefaultTableModel; public class JTableExample { public static void main(String[] args) { // 创建数据模型 DefaultTableModel model = new DefaultTableModel(); model.addColumn("姓名"); model.addColumn("年龄"); model.addRow(new Object[]{"张三", 20}); model.addRow(new Object[]{"李四", 30}); // 创建JTable实例 JTable table = new JTable(model); table.setPreferredScrollableViewportSize(new Dimension(400, 200)); table.setFillsViewportHeight(true); // 创建ScrollPane来显示表格 JScrollPane scrollPane = new JScrollPane(table); // 创建窗口并添加表格 JFrame frame = new JFrame("JTable Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(scrollPane); frame.pack(); frame.setVisible(true); } } ``` 在这个例子中,我们首先创建了一个DefaultTableModel作为数据模型,添加了两列“姓名”和“年龄”,并填充了两行数据。然后使用JTable构造函数传入数据模型创建了一个表格实例,并设置了表格的大小和样式。最后将表格添加到JScrollPane中,再将ScrollPane添加到JFrame中显示出来。 这只是一个简单的JTable例子,更复杂的表格操作需要使用更多的API和事件监听器来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值