java表格控件JTable常用操作详解

图形界面系列教材 (十)- Swing 使用 JTable详解 步骤1:基本表格步骤2:JScrollPane步骤3:列宽步骤4:TableModel步骤5:进一步理解TableModel步骤6:TableModel 与DAO结合步骤7:TableSelectionModel步骤8:更新Table步骤9:输入项验证步骤10:选中指定行 示例1:基本表格 显示一个Table需要两组数据 1. 一维数组: String[]columnNames ... 阅读详情

JTable是Swing编程中很常用的控件,其为显示大块数据提供了一种简单的机制。JTable有很多东西是用于数据的生成和编辑,其中的很多东西还可以自定义,从而更进一步增强其功能。

这里总结了一些常用方法以备查阅.

一.创建表格控件的各种方式:
1) 构造一个默认的 JTable,使用默认的数据模型、默认的列模型和默认的选择模型对其进行初始化。
   JTable table = new JTable();
 2) 以表头和表数据创建表格.

    JTable(Object[][] rowData, Object[[] columnNames)

构造一个 JTable 来显示二维数组 rowData 中的值,其列名称为 columnNames.例如:创建一个两行两列的表格。
    Object[][] cellData = {{"row1-col1","row1-col2"},{"row2-col1",
    "row2-col2"}};
    String[] columnNames = {"col1","col2"};
    JTable table = new JTable(cellData, columnNames);
 3) 以表头和表数据创建表格,并且让表单元格不可改.
    String[] headers = { "表头一","表头二", "表头三"};
    Object[][] cellData = null;

DefaultTableModel model =new DefaultTableModel(cellData, headers) {

         publicboolean isCellEditable(int row, int column) {
           return false;
         }
    };

table = new JTable(model);

4)JTable(int numRows, int numColumns) 
          使用 DefaultTableModel 构造具有 numRows 行和 numColumns 列个空单元格的 JTable。

       JTable table = new JTable(3,4);创建3行4列表格

二.对表格列的控制
 1) 如果JTable的一个列或者JTable窗口自身的大小被重新确定,那么其他列会被相应的缩小或者放大,以适应新的窗口。使用setAutoResizeMode()方法就能够控制这种行为:
    table.setAutoResizeMode(int mode);

mode整数字段可能的值有:
AUTO_RESIZE_OFF
AUTO_RESIZE_NEXT_COLUMN
AUTO_RESIZE_SUBSEQUENT_COLUMNS
AUTO_RESIZE_LAST_COLUMN
AUTO_RESIZE_ALL_COLUMNS


 2) 限制某列的宽度.
    TableColumn firsetColumn =table.getColumnModel().getColumn(0);
    firsetColumn.setPreferredWidth(30);
    firsetColumn.setMaxWidth(30);
    firsetColumn.setMinWidth(30);
3) 设置当前列数.
   DefaultTableModel tableModel = (DefaultTableModel)table.getModel();
   int count=5;
   tableModel.setColumnCount(count);
4) 取得表格列数
   int cols = table.getColumnCount();
5) 添加列
   DefaultTableModel tableModel = (DefaultTableModel)table.getModel();
   tableModel.addColumn("新列名");
6) 删除列
   table.removeColumn(table.getColumnModel().getColumn(columnIndex));//columnIndex是要删除的列序号

三.对表格行的控制
1) 设置行高
   table.setRowHeight(intpixelHeight);

各个单元格的高度将等于行的高度减去行间的距离。
2) 设置当前行数
    DefaultTableModel tableModel = (DefaultTableModel)table.getModel();
    int n=5;
    tableModel.setRowCount(n);
3) 取得表格行数
     int rows = table.getRowCount();

4) 添加表格行
    DefaultTableModel tableModel = (DefaultTableModel)table.getModel();
    tableModel.addRow(new Object[]{"sitinspring","35", "Boss"});
5) 删除表格行
   DefaultTableModel tableModel = (DefaultTableModel)table.getModel();
   model.removeRow(rowIndex);// rowIndex是要删除的行序号

四.存取表格单元格的数据
 1) 取单元格数据
    DefaultTableModel tableModel = (DefaultTableModel)table.getModel();
    String cellValue=(String) tableModel.getValueAt(row,column);// 取单元格数据,row是行号,column是列号
2) 填充数据到表格.
   注:数据是Member类型的链表,Member类如下:
   public class Member{
       // 名称
       private String name;
       // 年龄
        private String age;
        // 职务
        private String title;
     }

填充数据的代码:
public void fillTable(List<Member> members){
    DefaultTableModel tableModel = (DefaultTableModel)table.getModel();
    tableModel.setRowCount(0);// 清除原有行
             
    // 填充数据
    for(Member member:members){
        String[] arr=new String[3];
        arr[0]=member.getName();
        arr[1]=member.getAge();
        arr[2]=member.getTitle();
               
        // 添加数据到表格
        tableModel.addRow(arr);
    }
    // 更新表格
    table.invalidate();
}
2) 取得表格中的数据
public List<Member> getShowMembers(){
    List<Member> members=newArrayList<Member>();
    DefaultTableModel tableModel = (DefaultTableModel)table
  .getModel();
   int rowCount=tableModel.getRowCount();
   for(int i=0;i<rowCount;i++){
       Member member=new Member();
       member.setName((String)tableModel.getValueAt(i,0));

// 取得第i行第一列的数据
       member.setAge((String)tableModel.getValueAt(i,1));

// 取得第i行第二列的数据
      member.setTitle((String)tableModel.getValueAt(i,2));

// 取得第i行第三列的数据
       members.add(member);
    }
    return members;
}

五.取得用户所选的行
1) 取得用户所选的单行
int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();

if(selectRows==1){
     int selectedRowIndex = table.getSelectedRow();

// 取得用户所选单行
 // 进行相关处理
  }
 2) 取得用户所选的多行
 int selectRows=table.getSelectedRows().length;

// 取得用户所选行的行数
 DefaultTableModel tableModel = (DefaultTableModel) table.getModel();

 if(selectRows>1)
     int[] selRowIndexs=table.getSelectedRows();// 用户所选行的序列
     for(int i=0;i<selRowIndexs.length;i++){
         // 用tableModel.getValueAt(row, column)取单元格数据
         String cellValue=(String)tableModel.getValueAt(i, 1);
      }
  }
 六.添加表格的事件处理
 view.getTable().addMouseListener(new MouseListener() {
       public void mousePressed(MouseEvente) {
        // 鼠标按下时的处理
       }

publicvoid mouseReleased(MouseEvent e) {
       // 鼠标松开时的处理
       }

 publicvoid mouseEntered(MouseEvent e) {
       // 鼠标进入表格时的处理
       }

 publicvoid mouseExited(MouseEvent e) {
       // 鼠标退出表格时的处理
       }

publicvoid mouseClicked(MouseEvent e) {
       // 鼠标点击时的处理
       }
});

例子:

点击打开链接

这里我要讲下JTable的结构 a[][]就是一个i行j列的表,用来显示数据库中数据用的,而header[]是一个j列的表头,用来存储字段名称的,比如说上面的"学号","姓名"等字符串;


深入掌握JTable:Java Swing表格组件实践 本文还有配套的精品资源,点击获取 简介:JTable是Java Swing库的一个核心组件,用于展示和操作多行多列的表格数据。本练习深入探讨了JTable的创建、数据绑定、事件处理和自定义功能,包括如何通过TableModel管理数据、使用事件监听器响应用户操作、自定义单元格渲染和编辑器,以及将数据模型与UI控件进行绑定,提高大型应用的可维护性。通过本项目的实践,学习者将能... 阅读详情

相关推荐

JAVA表格控件JTable常用操作详解.doc

本文档主要讲述的是java表格控件JTable常用操作详解;JTable是Swing编程中很常用的控件,文中总结了一些常用方法以备查阅。

Java Swing JTable:表格

1 JTable:表格 表格是 Swing 新增加的组件,主要功能是把数据以二维表格的形式显示出来,并且允许用户对表格中的数据进行编辑。表格组件是最复杂的组件之一,它的表格模型功能非常强大、灵活而易于执行。Swing 使用 JTable 类实现表格。 1.2 JTable 构造函数 JTable():构造一个默认的 JTable,使用默认的数据模型、默认的列模型和默认的选择模型对其进行初始化。...

书香水墨 3339

2026年信创系统技术应用专业人才培养基地建设方案(高职、信创新专业、人才培养、专业代码:510221)

响应国家信创产业战略及教育部新增“信创系统技术应用”专业(代码510221)的部署,联合麒麟软件、华为鸿蒙等领军企业,建设高水平信创人才培养基地。方案基于国家政策导向(如2027年央企全面国产化替代目标)和行业人才缺口(2025年缺口超80万人),提出以“产教融合、创新驱动”为核心,构建集教学、实训、认证于一体的综合性培养体系。 建设内容涵盖五大方向: 专业规划:分三阶段(2025-2030年)推进专业申报、课程开发与区域辐射,最终建成区域性信创技术创新平台。 课程体系:围绕运维、云计算、数据库、适配

啊碧根果的博客 1598

Java------JTable的使用

JTable,表格。JTable 是用来显示和编辑常规二维单元表。 表格组件和其他普通组件一样,需要添加到中间容器中才能显示,添加表格到容器中有两种方式: 添加到普通的中间容器中(如上面代码实例所示的添加到JPanel),此时添加的jTable只是表格的行内容,表头(jTable.getTableHeader())需要额外单独添加。此添加方式适合表格行数确定,数据量较小,能一次性显...

hello_cmy的博客 4978

以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍

网络设备中肯定离开不MAC和PHY,本篇文章将详细介绍下以太网中一些常见术语与接口。 MAC和PHY结构 从硬件角度来看以太网是由CPU,MAC,PHY三部分组成的,如下图示意: 上图中DMA集成在CPU,CPU,MAC,PHY并不是集成在同一个芯片内,由于PHY包含大量模拟器件,而MAC是典型的数字电路,考虑到芯片面积及模拟/数字混合架构的原因,**将MAC集成进CPU而将PHY留在片外,这种...

sternlycore的博客 13万+

Cartographer从安装到实战:手把手教你运行2D/3D建图与定位

本文提供了一份详尽的Cartographer从零安装到实战应用的完整指南。内容涵盖环境准备、依赖编译、源码构建等关键步骤,并手把手指导读者运行2D/3D官方数据集进行建图与定位测试。文章深入解析了参数配置与自定义数据适配方法,帮助开发者快速掌握这一强大的实时同步定位与建图工具,并将其应用于机器人导航与自动驾驶等实际场景。

rice5的博客 950

java jtable单元格_java表格控件JTable常用操作详解

JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅.欢迎补充,转载请注明作者与出处.一.创建表格控件的各种方式:1) 调用无参构造函数.JTable table = new JTable();2) 以表头和表数据创建表格.Object[][] cellData = {{"row1-col1", "row1-col2"},{"row2-col1","row2-col2"}};...

weixin_29243279的博客 1180

LVDS接口总结--(0)LVDS硬件电路接口

xilinx LVDS接口硬件总结

zidan1412的博客 9721

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

最近利用空闲时间自己琢磨了一下java swing 编程,其实在从事javaweb之前我一直向往的就是java swing 开发,不知道为什么可能当时觉得Windows上的exe程序很是神奇,关于windows上制作exe我之前也有介绍java swing开发都是自己琢磨的,有的地方写的不规范,不过大多都是网上借鉴的,应该不算离谱的。今天看了看自己的java swing的程序,感觉写的还不错,但是...

weixin_31742467的博客 3578

VC中基于TWAIN协议控制扫描仪-----初级版

PS:本人是C++小白一枚,在研究此功能时不知走了多少弯路

a1101000099的专栏 8789

Wio-LR1121多频段LoRa模块技术解析与应用实践

LoRa技术作为低功耗广域物联网(LPWAN)的核心通信方案,通过独特的扩频调制技术实现远距离传输与强抗干扰能力。其工作原理基于CSS(Chirp Spread Spectrum)调制,支持动态调整扩频因子(SF)和带宽(BW)来平衡传输距离与数据速率。Wio-LR1121模块作为Semtech LR1121芯片的载体,创新性地整合了sub-GHz、S-Band和2.4GHz多频段支持,配合仅1.35μA的睡眠电流,为跨境物联网部署提供了硬件基础。在智慧农业、工业监测等场景中,开发者可通过SPI接口快速集成

weixin_33742618的博客 416

java jtable组件_java中jtable组件详解实例

java中jtable组件详解实例 java 表格控件 JTable 常用操作详解 JTable 是 Swing 编程中很常用的控件,这里总结了一些常用方法以备查阅.欢迎补充,转载请注明作者与出处.一.创建表格控件的各种方式:1) 调用无参构造函数.JTable table = new JTable();2) 以表头和表数据创建表格.Object[][] cellData = {{“row1-co...

weixin_42524530的博客 800

3D医学影像开发入门<一>:VS2019+DCMTK3.6.8编译及环境配置

3D医学影像开发入门:VS2019+DCMTK3.6.8编译及环境配置

欧特GO 1307

java 中jtable_java中表格控件JTable的操作

JTable table = new JTable();DefaultTableModel tableModel = (DefaultTableModel)table.getModel();1、增加列:tableModel.addColumn("新列名");删除列:table.removeColumn(table.getColumnModel().getColumn(columnIndex));/...

weixin_31610297的博客 632

【unity实战】使用unity的Navigation+LineRenderer实现一个3D人物寻路提前指示预测移动轨迹的效果,并可以适配不同的地形

本文介绍了在Unity中使用Navigation导航系统和LineRenderer实现3D人物寻路轨迹预测效果的方法。通过NavMesh.CalculatePath计算路径点,结合Physics.Raycast进行地面点投射,将路径点赋予LineRenderer渲染出移动轨迹。关键点包括:1)利用NavMesh.CalculatePath计算两点间可行走路径;2)通过射线检测获取地面点提高路径适配性;3)使用协程定期更新路径绘制。文章还提供了完整代码实现,并说明需要将地面图层设置为Ground并进行导航网格

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 459

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

java 中jtable_Java中JTable的用法

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 Swing颇受欢迎的JTable类为显示大块数据提供了一种简单的机制。JTable有很多东西是用于数据的生成和编辑,其中的很多东西还可以自定义,从而更进一步增强其功能。本文会引导你一步步地进入JTable的世欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入Swing颇受欢迎的JTable类为显示...

weixin_33855603的博客 3557

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java中JTable的用法

JTable常见用法一.创建表格控件的各种方式:1)  调用无参构造函数.JTable table = new JTable();2)  以表头和表数据创建表格.Object[][] cellData = {{"row1-col1", "row1-col2"},{"row2-col1", "row2-col2"}};String[] columnNames = {"col1", "col2&quot

MDZZ88888888的博客 9410

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java 的 表格控件_java最强大的表格控件

在表格控件设计中,表格控件的数据源可以是 A) 查询 B) 表C) SQL语句 ...可编辑的 HTML JavaScri... 11页 1下载券 Web表格控件 6页 免费 制作VC表格控件 4页 1下载券 MFC控件 99页 1下载券 ActiveX控件发布过程 21页 免费......泰州电信案例泰州电信内部正是由于上述反应不及时的问题,业务支撑部采用了 FineReportjava...

weixin_39864591的博客 1131

Swing 中的其他控件(JTable)

但是表中数据有多行多列,所以, 每一行都是一个 Vector,总的数据也是 Vector,在总的 Vector 中压入大量行的 Vector 对象。我 们不建议直接对 JTable 直接添加数据,如同上面的下拉列表一样,JTable 也是使用 Model 的方式维护数据的,而且在添加数据时也不推荐使用数组的方式,大家都知道数组有太多局 限性,比如长度固定,在真实开发中,有可能我们根本不知道数据的长度,所以比较推荐使 用集合 Vector。JTable 使用专有的整数来表示它所对应的模型的行和列。

m0_48205251的博客 1578

JTable的一些常用方法

JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅. 一.创建表格控件的各种方式: 1)  调用无参构造函数. JTable table = new JTable(); 2)  以表头和表数据创建表格. Object[][] cellData = {{"row1-col1", "row1-col2"},{"row2-col...

weixin_43236827的博客 1146

如何自动更新JTable中的数据(代码实现)

java 中提供了一个很好的表格控件JTable,我们可以很方便的将数据填充并显示出来,下面为JAVA代码的具体实现:  //定义一JTable 类  JTable tbl_params = new JTable(); //定义表格的行数据信息容器  Vector srcdata=new Vector();//初始化表格的列标题及相关的数据信息容器    String[] colu

linmaochen的专栏 2564

java jtable在哪个包中,javajtable添加

java jtable动态添加数据,,java清空jtable数据,javajtable添加java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JPanel; import javax.swing.JTable; import java.awt.........

weixin_29173299的博客 538

jav中GUI之表格jTable组件详解

java表格控件JTable常用操作详解 JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅. 创建表格控件的各种方式: 构造方法: 1) 调用无参构造函数. JTable table = new JTable(); 2) 以表头和表数据创建表格. Object[][] cellData = {{"row1-col1", "row1-col2"},{"row2-co

Web小笨猪的博客 3932

关于jTable

先看代码Object rows[][] = { { "王明", "中国", 44 }, { "姚明", "中国", 25 }, { "赵子龙", "西蜀", 1234 }, { "曹操", "北魏", 2112 }, { "Bill Gates", "美国", 45 }, { "Mike", "英国", 33 }, { "姚明", "中国", 25 }, { "赵子龙

u010067397的专栏 2287
上一篇: JTable 不能正确显示标题总结
下一篇: uboot简介
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值