表格是 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 所示。

22、Java Swing JTable:表格相关推荐

  1. java swing jtable分页_Swing之JTable的详细介绍

    8-1:使用JTable组件: 类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JCo ...

  2. 2020 java swing jtable 合并_java学生管理系统(界面版)

    运行截图 ​ 项目说明: 本系统界面我个人就从简设计了,本来打算使用windowbuilder插件设计的,可想到使用windowbuilder插件之后导致代码冗余,会影响到代码可读性,可能对小白不友好 ...

  3. java swing 表格控件_java swing 开发 -JTable

    最近利用空闲时间自己琢磨了一下java swing 编程,其实在从事javaweb之前我一直向往的就是java swing 开发,不知道为什么可能当时觉得Windows上的exe程序很是神奇,关于wi ...

  4. Java Swing编程:JTable表格

    表格是GUI编程中使用较多,但也是最麻烦的一个控件之一.表格是用来显示二维数据,提供编辑,选择等功能.如果只是显示数据,这还是非常easy的,只要在JTable中传入二维数组或集合就可以了. 表格是G ...

  5. Java Swing高级组件——表格组件

    Swing 表格组件 表格是最常用的数据统计形式之一,在日常生活中经常需要表格来统计数据.在 Java Swing 中由JTable类实现表格. 一,创建表格 在 JTable 类中除了默认的构造方法 ...

  6. jtable如何从表格中定位_Java Swing组件编程之JTable表格用法实例详解

    本文实例讲述了Java Swing组件编程之JTable表格用法.分享给大家供大家参考,具体如下: 表格是GUI编程中使用较多,但也是最麻烦的一个控件之一.表格是用来显示二维数据,提供编辑,选择等功能 ...

  7. JAVA Swing 中的表格

    今天我们来学习一下java swing中的表格怎么来使用 在用swing技术开发系统的时候, 有时候会需要用到表格,那么我们来看看表格是怎么使用的 public class Table1 extend ...

  8. java jtable方法,java swing之JTable跟JList

    java swing之JTable和JList 1.JTable JTable构造方法: JTable(TableModel dm) JTable(object[][]rowData,object[] ...

  9. 编写Java程序,使用JTable表格组件展现人员信息列表

    返回本章节 返回作业目录 需求说明: 使用JTable组件显现人员信息列表 实现思路: 创建一个JTable对象. 创建一个JScrollPane对象(显示横向和纵向滚动条). 将表格添加到滚动面板. ...

最新文章

  1. java json 长度限制_[原创]Java中字符串、数组、集合及JSONArray的长度属性
  2. 互联网协议 — 使用 Wireshark 调试 HTTPS 及 HTTP/2 流量
  3. C++拷贝构造函数的参数为什么必须使用引用类型(无限递归)
  4. go 学习Printf
  5. think php f方法,修改ThinkPHP3.2的F方法
  6. webStrom破解链接
  7. Mac下ndk交叉编译arm平台程序
  8. JavaScript常见设计模式梳理
  9. Global Mapper居然也有手机版(附安装包下载)
  10. 数据库语句创建数据库
  11. 电力系统微型计算机继电保护试题及答案,电力系统微型计算机继电保护试题及答案(2002年4月)...
  12. 数据分析/运营——用户分层模型RFM
  13. docker容器的时间问题
  14. deflate与gzip
  15. sleep ,wait,notify和notifyAll
  16. 精简《JavaScript高级程序设计》五、引用类型(上)
  17. 色阶的中间调调节原理之一
  18. Semilogx 不是对数坐标
  19. unity游戏开发(1)安装开发环境
  20. Panda3D引擎简介跟初步体验

热门文章

  1. DL之GoogleNet:GoogleNet(InceptionV1)算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  2. DL之NN:基于(sklearn自带手写数字图片识别数据集)+自定义NN类(三层64→100→10)实现97.5%准确率
  3. 在Python中使用lightgbm
  4. Ubuntu16.04 安装谷歌浏览器并配置常用插件与扩展
  5. 『转载』在vs2008(2005)winform中,打开office文档
  6. 移动web——基本知识点总结
  7. 设计模式之职责链模式永不罢休(二十一)
  8. 初识java-循环结构(二):6
  9. 【NOI2013】向量内积
  10. 三十九、Android原理 不需要关闭后台运行程序