22、Java Swing JTable:表格

表格是 Swing 新增加的组件,主要功能是把数据以二维表格的形式显示出来,并且允许用户对表格中的数据进行编辑。表格组件是最复杂的组件之一,它的表格模型功能非常强大、灵活而易于执行。由于篇幅有限,本节只介绍默认的表格模型。

Swing 使用 JTable 类实现表格,常用构造方法如下所示

  • JTable():构造一个默认的 JTable,使用默认的数据模型、默认的列模型和默认的选择模型对其进行初始化。
  • JTable(int numRows,int numColumns):使用 DefaultTableModel 构造具有 numRows
    行和 numColumns 列个空单元格的 JTable。
  • JTable(Object[][] rowData,Object[] columnNames):构造一个 JTable 来显示二 维数组
    rowData 中的值,其列名称为 columnNames。

创建一个带有滚动条的 JTable 对象非常简单,如下所示。

JTable table=new JTable(5,6);
JScrollPane pane=new JScrollPane(table);

第一条语句创建了一个 JTable 对象。第二条语句创建了一个存放 JTable 对象的 JScrollPane 对象,该对象是一个视图对象。JScrollPane是一个垂直和水平滚动条,以及可设置行和列标题的容器。上面两行代码执行后的表格效果如图1 所示。

在这里插入图片描述

JTable 类常用方法:

  • getColumnCount()---- 返回列模型中的列数
  • getColumnN ame(int column)---- 返回出现在视图中 column 列位置处的列名称
  • getRowCount()---- 返回 JTable 中可以显示的行数(给定无限空间)
  • getRowSorter() ----返回负责排序的对象
  • getSelectedColumn() ----返回第一个选定列的索引,如果没有选定的列, 则返回 -1
  • getSelectedRow()---- 返回第一个选定行的索引,如果没有选定的行, 则返回 -1
  • getValueAt(int row,int column)---- 返回 row 和 column 位置的单元格值
  • isEditing()---- 如果正在编辑单元格,则返回 true
  • selectAll()---- 选择表中的所有行、列和单元格
  • setColumnSelectionInterval(int index0,int index1) ----选择从 index0 到
    index1之间(包含两端)的列
  • setRowSelectionInterval(int index0,int index1) ----选择从 index0 到 index1
    之间(包含两端)的行
  • setTableHeader(JTableHeader tableHeader)---- 将此 JTable 所使用的 tableHeader
    设置为 newHeader
  • setUpdateSelectionOnSort(boolean update) ----指定排序后是否应该更新选择
  • setValueAt(Object a Value,int row,int column)---- 设置表模型中 row 和 column
    位置的单元格值

例 1
使用 JTable 类创建一个包含 8 列的学生成绩表,并向表格中填充几行数据,具体实现代码如下所示。

import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class JTableDemo
{
    public static void main(String[] agrs)
    {
        JFrame frame=new JFrame("学生成绩表");
        frame.setSize(500,200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container contentPane=frame.getContentPane();
        Object[][] tableDate=new Object[5][8];
        for(int i=0;i<5;i++)
        {
            tableDate[i][0]="1000"+i;
            for(int j=1;j<8;j++)
            {
                tableDate[i][j]=0;
            }
        }
        String[] name={"学号","软件工程","Java","网络","数据结构","数据库","总成绩","平均成绩"};
        JTable table=new JTable(tableDate,name);
        contentPane.add(new JScrollPane(table));
        frame.setVisible(true);
    }
}

如上述代码所示,表格组件和其他组件类似,可以方便地创建一个 JTable 对象。 如果 JTbale 对象直接添加到 JFrame 中,则表头显示不出来,需要把表格对象放入 JScrollPane 对象中,之后把 JScrollPane 对象添加到 JFrame 中。实例的运行效果如图 2 所示。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值