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

Mac新手必看:为什么你的终端找不到Python命令?5分钟搞定zsh报错

本文针对Mac用户在终端遇到“zsh: command not found: python”报错的问题,提供了深度解析与实战修复指南。文章解释了macOS系统因历史原因默认使用`python3`而非`python`命令,并详细介绍了四种解决方案:养成使用`python3`的习惯、创建别名、通过Homebrew安装链接以及修改PATH环境变量,帮助新手快速解决zsh报错,顺利开始Python开发。

weixin_29248653的博客 594

Java------JTable的使用

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

hello_cmy的博客 4978

Endnote 导入参考文献的时候,格式错误太多了。et.al错误,国标GBT7714在endnote中的详细配置教程,适用于本科,硕士论文文献插入的模板

EndNote插入文献常遇到以下错误主要如下: 等、et al不分; 英文作者全名大写; 期刊名字使用了缩写(图片里没有体现;卷号、期号缺失时出现乱码,多了半个括号;页码范围略去了相同部分;没有悬挂缩进,本文全部解决,全网最细

sakura的博客 3万+

PHP特性知识点总结

(1)类型转换之前提到过的是字符串转为整型。其实php手册里面提到了各种类型的转换。先把他放在这里。我们按照php手册上的顺序来介绍,只介绍几个比较常用的。①转化为bool②转化为整型int。

m0_73605862的博客 1295

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

开源收银系统_大型收银系统源码_OctShop

开源收银系统正成为大型连锁企业数字化转型的关键工具。相比传统闭源系统,开源方案具有成本低(年均降本60%+)、定制灵活(支持多业态协同)、自主可控等优势,能有效解决高并发、多门店数据同步等痛点。核心价值在于:1)分布式架构适配规模化扩张;2)模块化设计实现个性化开发;3)开放接口打通ERP/CRM等系统。典型案例显示,连锁商超通过源码二次开发实现库存实时同步,补货效率提升50%;餐饮集团统一多业态收银流程后会员复购率增长35%。选型需关注源码成熟度、技术兼容性和安全合规,建议采用"开源+服务商&q

OctShop全栈工程师 938

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

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

weixin_31742467的博客 3578

学习笔记( 11 ) - 解决:finalshell连接虚拟机(ubuntu)超时,主机ping不通虚拟机,主机没有VMnet8网卡, Connection refused: connect

解决:finalshell连接虚拟机(ubuntu)超时,主机ping不通虚拟机,主机没有VMnet8网卡, Connection refused: connect

烟溪彭于晏的博客 2万+

STM32CubeIDE下载程序报错:Failed to execute MI command: load G:\\Cube_IDE_EXP\\00_FIRST\\Debug\\00...如何解决??

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2599

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

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

weixin_42524530的博客 800

【数据分享】12.5米分辨率DEM地形数据(分省)

该数据来源于NASA地球科学数据网站(https://nasadaacs.eos.nasa.gov/),是ALOS卫星获取的高精度地形数据。该数据由于精度高,包括全省范围的数据和省内每个城市范围的数据!

JData_Engineer的博客 2171

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

157、飞控中的鲁棒自适应控制

本文总结了飞控系统中鲁棒自适应控制的实践经验。作者通过炸机案例引出传统PID控制的局限性,分析了鲁棒性与自适应性的本质矛盾,提出"用鲁棒性兜底,用自适应性提性能"的设计原则。重点介绍了模型参考自适应控制(MRAC)的实现方法,包括参考模型设计、自适应律调参技巧(建议初始增益设为0.01)、直接/间接自适应的应用场景差异,以及防止参数漂移的鲁棒修正方法。文章还分享了实际调试中的三大关键问题(初始值设定、激励条件、执行器饱和)及解决方案,并推荐了"鲁棒PID+自适应前馈"的混合架构。最后强调调试顺序应为先保证鲁

2401_88858637的博客 27

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java 中jtable_Java中JTable的用法

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

weixin_33855603的博客 3557

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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、付费专栏及课程。

余额充值