JAVA JTable的实用使用方法

图形界面系列教材 (十)- Swing 使用 JTable详解 首先说下TableModel的设计思想,在Model这种思想的指导下,数据和显示分离开来了。数据部分,专门做一个类,叫做TableModel,就用于存放要显示的数据。这正好演绎了Model设计思想中的数据分离的好处,当只需要数据发生变化的时候,修改Model即可,界面GUI部分,不需要做任何改动。第一个单元格的数据的时候,就会调用方法TabelModel的getValueAt(0,0) ,把返回值拿到并显示。如果用户输入的名称为空,或者血量不是小数,在提交数据的时候都会报错。 阅读详情
创建table,调用无参的构造函数:
JTable table= new JTable();


以表头和数据创建表格
//这要求表头和数据都不能为空,不然会抛出NullPointerException,即不能通过这个方法创建出一个只有表头的表格

Object[][] cellData = {{"row1-col1", "row1-col2"},{"row2-col1", "row2-col2"}};
String[] columnNames
= {"col1", "col2"};
JTable table
= new JTable(cellData, columnNames);

为空表格添加列
//这种方法能创建只有表头的表格

//这是实际应用中的一个例子
JTable table=new JTable();
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
//因为只有DefaultTableModel有addColumn的功能,而table.getModel()返回的是一个TableModel类型的对象
//查看API,DefaultTableModel实现了TableModel的接口,为了调用DefaultTableModel的方法,必须强制类型转换
tableModel.addColumn("autoclass1");
tableModel.addColumn("autoclass2");
tableModel.addColumn("diff");
tableModel.addColumn("content");
结果:
JAVA JTable的实用使用方法 - 小镜子~ - 菜园子

为表格添加行(数据):
Object[] o={"1","2","3","4"};
tableModel.addRow(o);
 结果:
JAVA JTable的实用使用方法 - 小镜子~ - 菜园子


获取第n+1行第m+1列的数据
//n,m都是从0开始

DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
String cellData=(String) tableModel.getValueAt(0,0);
//cellData是第一行第一列的数据值
//getValueAT(a,b)返回的是Object类型的对象


设置第n+1行第m+1列的数据
tableModel.setValueAt("afaf", 0, 0);



统计列数和行数:
tableModel.getRowCount()
tableModel.getColumnCount()
//返回的是int类型的值


设置列宽,行高:
TableColumn column = table.getColumnModel().getColumn(0);//取第一列
   column.setPreferredWidth(30);
   column.setMaxWidth(
30);
column.setMinWidth(
30);

   table.setRowHeight(20);


删除列,删除行
table.removeColumn(table.getColumnModel().getColumn(1));
//删除第二列的数据

DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
tableModel.removeRow(0);
//删除第一行的数据

清空表的所有行,只保留表头:
//table和tableModel都没有clear()的方法
tableModel.setRowCount(0);
如果连表头也不要了:
tableModel.setColumnCount(0);



JTable的监听:
有很多,先只讲一个我常用到的:
ListSelecitonListener,监听选定特定行,响应相应的事件

例:获取选定行的第4列的值,并把它显示在一个JTextArea里
写一个内部类实现ListSelectionListener接口
JAVA JTable的实用使用方法 - 小镜子~ - 菜园子
 为table添加监听:
ListSelectionModel selectionMode=table.getSelectionModel();
selectionMode.addListSelectionListener(new RowSelectionListener());

效果图:
JAVA JTable的实用使用方法 - 小镜子~ - 菜园子
 
 





 
使用Java创建自定义JTable 通过使用DefaultTableModel类,我们可以轻松地添加数据和列名,并使用各种方法来调整表格的外观和行为。JTable是Java Swing库中的一个重要组件,用于在图形用户界面(GUI)中显示和编辑表格数据。本文将介绍如何使用Java编写代码来创建和定制JTable,并展示一些常见的JTable功能。如果需要对表格进行定制,可以使用JTable的各种方法来设置表格的外观和行为。现在,当你运行这段代码时,一个带有自定义数据和列名的JTable将显示在GUI窗口中。 阅读详情

相关推荐

本体(Ontology)概述

认识本体        本体(Ontology)的概念源自于哲学领域,在哲学中的定义为“对世界上客观事物的系统描述,即存在论”。哲学中的本体关心的是客观现实的抽象本质。而在计算机领域,本体可以在语义层次上描述知识,可以看成描述某个学科领域知识的一个通用概念模型。德国学者Studer在1998年给出了本体的相关定义“本体是共享概念模型的形式化规范说明”。这个定义包含了四层含义:即共享(share)...

baijinswpu的博客 7万+

Java Swing JTable:表格

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

书香水墨 3339

川崎机器人总线通信_三菱PLC和发那科机器人进行CCLINK总线通信

三菱CCLINK主站模块采用QJ61BT11N,该模块用在Q系列PLC上,如果是5U或3UPLC,可用FX5-CNV-BUS加FX3U-16CCL-M或FX5-CCL-M模块。本教程以Q系列为例CCLINK接线方法如下模块拨码含义如下接线和拨码设置好后,接着在编程软件上设置CCLINK通信参数打开编程软件,在工程导航栏打开参数——网络参数,选中CCLINK打开。打开如下画面起始IO为模块本体占用I...

weixin_42300398的博客 7552

Java------JTable的使用

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

hello_cmy的博客 4978

Sciter教程_00_创建HelloWorld工程

本教程记录Sciter工程的创建和编译运行的过程。

qq_36707072的博客 2277

DETR系列文章之–Co-DETR

Co-DETR,并行训练多个辅助头,以一对多的标签分配方式进行监督从辅助头中提取正样本坐标,为解码器中的正样本的训练效率进行额外的定制化正样本query.一对一标签分配:每个GT框分配给一个特定的query(DETR),较少的正query导致低效训练,从编码器生成的潜在表示和解码器中的注意力学习分析这一问题。一对多标签分配:每个GT框分配给检测器输出的多个proposal/anchor,依赖NMS或者anchor生成(ATSS,RetinaNet,FCOS,PAA)。

weixin_43731232的博客 2114

JAVA JTable 方法全集

void addColumn(TableColumn aColumn) 将 aColumn 追加到此 JTable 的列模型所保持的列数组的结尾。 void addColumnSelectionInterval(int index0, int index1) 将从 index0 到 index1(包含)之间的列添加到当前选择中。 void addNotify() 调用 configureEnclosingScrollPane 方法。 void addRowSelectionInterval(int inde

weixin_41999297的博客 2412

ZYNQ:【1】深入理解PS端的TTC定时器(Part1:原理+官方案例讲解)

基于UG585详细讲解其中TTC的原理和使用案例。

Alex的技术博客 7887

java JTable有什么设置方法

分类: Java2010-06-05 21:49 543人阅读 评论(1) 收藏 举报 javaobjectjcomponentswingstring网格 void addColumn(TableColumn aColumn)            将 aColumn 追加到此 JTable 的列模型所保持的列数组的结尾。  void addColumnSelectionInter

CARROTHWQ的专栏 863

Linux内核支持串口屏,linux串口触摸屏设计总结

Linux serial touch 设计总结概述:最近在做嵌入式linux下串口触摸屏设计,遇到一些问题,经过查找资料和请教同事,总算把问题解决了,事后有把linux相关的内核代码仔细看了一遍,为了有点成果,特别写了个总结。如有任何问题请联系yxj_5421@http://www.doczj.com/doc/87b94b1e227916888486d76d.html,转载请标明出处。系统资源:L...

weixin_39935903的博客 1297

Python自动化神器:OP插件64位版从安装到实战(附雷电模拟器截图技巧)

本文详细介绍了Python自动化神器OP插件64位版的安装与实战应用,包括环境搭建、窗口控制、鼠标键盘模拟等核心功能。特别针对雷电模拟器提供了最小化截图技术和OCR识别优化方案,帮助开发者高效实现Windows自动化任务。

weixin_29094539的博客 333

java jtable方法_Java中JTable如何使用?

Listing A包含了一个简单示例的代码,这个示例会说明常用JTable的行为。用户能够更改JTable的布局、拖放它的栏,或者通过拖动标题的分隔线来改变其大小。这些列被保存在一个String数组里:String[] columnNames = {"Product","Number of Boxes","Price"};数据被初始化并保存在一个二维的对象数组里:Object[][] data =...

weixin_39941732的博客 816

行人重识别技术(Re-ID)概述、研究现状以及相关数据集下载

ReID技术概述什么是ReID一般流程Re-ID特点研究现状难点数据集reid常用数据集以及下载链接评价指标实现思路研究方式基于表征学习基于度量学习基于局部特征全局特征切片姿态基于视频序列RQEN基于GANCamStyleDG-NetGAN总结对比未来方向建议文献 什么是ReID 行人重识别是指利用计算机视觉技术,判断在不同时间段、不同监控下出现的行人图像是否属于同一人员的技术。行人重识别是最近几年在视频分析领域下热门的研究领域,可以看做是人脸识别应用的拓展。现在大街上的监控较多,由于设备质量、成像光线、.

留缘的博客 1万+

java jtable方法,java swing之JTable跟JList

java swing之JTable和JList1、JTableJTable构造方法:JTable(TableModel dm)JTable(object[][]rowData,object[]columnNames)JTable(Vector rowData,Vector columnNames)JTable类常用的方法有:getModel() //获得表格的数据来源对象getSelected...

weixin_42455621的博客 999

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

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

java jtable 清空数据_JAVA修改、删除数据之后刷新JTABLE的方法

以下代码不完整,仅把关键的代码贴出来String userTitle[] = {“ID”,”用户名”,”密码”,”邮箱”,”名字”,”等级”};tab = new Object[userInfoNumber][6];Iterator iter = userList.iterator();while(iter.hasNext()){User user = iter.next();tab[i][0] ...

weixin_28864485的博客 1572

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java jtable方法_Java 子类回调更新JTable的方法

Java 子类回调更新JTable的方法Java 子类回调更新JTable的方法最近开发一个java 窗体应用,涉及到通讯过程中需将socket 接收的信息添加值Jtable中显示,涉及到java 的回调,经过一些时间的研究,终于调试通过,因此记录下来,以便别人学习,也便于自己后期查阅。Socket 接收消息通过线程监听完成,因此是异步更新。所以接收到信息后需要回调达到更新窗体的目的。过程和原理都...

weixin_29184371的博客 210

java jtable组件_java – 在JTable中显示组件的最佳方法?

我不是要问如何在JTable中显示一个Component,因为在线有几个教程和示例.但是,我想知道最好的解决方法是什么.例如,我遇到的大多数教程都有创建单独类的示例(Main类,一个扩展JTable,扩展TableModel,扩展TableCellRenderer,等等).但是,我发现你不仅可以在一个类中完成它,而且可以通过简单地使用以下方法来实现:示例代码(SSCCE)主要public clas...

weixin_36382155的博客 371

java swing 隐藏jtable 列的方法

转自:http://blog.youkuaiyun.com/caofeilong20941/article/details/8207156 // 隐藏列 public void HiddenCell(JTable table, int column) { TableColumn tc = table.getTableHeader().getColumnModel().getColumn( colu

auragreen的专栏 5287

java getselectedrow_Java JTable.getSelectedRow方法代碼示例

本文整理匯總了Java中javax.swing.JTable.getSelectedRow方法的典型用法代碼示例。如果您正苦於以下問題:Java JTable.getSelectedRow方法的具體用法?Java JTable.getSelectedRow怎麽用?Java JTable.getSelectedRow使用的例子?那麽恭喜您, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步...

weixin_39525097的博客 2339

java tablecelleditor_Java JTable.getCellEditor方法代码示例

import javax.swing.JTable; //导入方法依赖的package包/类public void testEditors() {setUpModel();JTable t = ot.treeTable.getTable();ot.revalidate();javax.swing.JFrame f = new javax.swing.JFrame();f.setLayout(new...

weixin_34773479的博客 607

java jtable 排序_解决JTable排序问题的方法详解

JTable的排序是一个让人头疼的问题,Sun没有为排序这个最常用的功能提供类。但是近日翻看Sun官方java的tutorial,却发现其在文档中提供了这个类的实现,使用非常简单!使用方法示例:TableSorter sorter = new TableSorter(new MyTableModel()); //ADDED THIS//JTable table = new JTable(new M...

weixin_29234423的博客 1210

java设置JTABLE不可编辑的方法,表格不可编辑(转)

设置JTABLE不可编辑的方法 将JTable的单元格设置为不可编辑,有三种方法。 第一种是自己写一个MyTable类继承DefaultTableModel,重写其中的isCellEditable方法; 第二种是在创建JTable对象时, JTable treeTable = new JTable(tableModel){ public boolean isCellEditable(int row, int column) { return false; }}; 第三种是treeTable.setEnabl

weixin_46028606的博客 7835

java jtable加一个值_Java-方法更改JTable中变量的值(刷新不起作用)

我有一个JTable,其中一个单元格内有一个变量.单击Button时,变量会更改,但JTable中没有任何更改.这是我的简单示例代码:public class Test extends JPanel {static String var = "One";Object rowData[][] = { { var, "Two", "Three" },{ "Four", "Five", "Six" } ...

weixin_39671405的博客 354

【java】将vector数据传入Jtable的方法

问题背景 在设计编译器的过程中,需要获取JtextAera中的字符,处理后得到token序列,并将token序列显示在Jtable中 在一开始,我并没有理解Jtable显示数据的原理,以为数据在导入之后可以直接存储在Jtable中,便参考了其他博文中的改变单元格数据方法,直接修改。 // 设置表格中指定单元格的数据 jTable.getModel().setValueAt(Object aValue, int rowIndex, int columnIndex); // 获取表格中指定单元格的数据 Ob

月下客 1618
上一篇: javadoc和各种tag使用
下一篇: Oracle(存储过程,触发器等中) if语句中不能有子查询的原因和解决方案
wangxiaojingo
博客等级 码龄15年 31粉丝 60原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值