Java swing JTable 是什么

Java Swing之JTable分页显示数据 使用表格显示数据时经常用到分页显示技术。在如下情况中经常用到。一是数据量较大。表格中的数据行数非常多,一次性全部展示会导致页面加载缓慢,用户滚动查找信息困难。二是数据加载时间长。如果从数据源获取数据并渲染到表格中的过程耗时较长,分页可以减少用户的等待时间,让用户更快地看到部分数据。三是屏幕空间有限。当屏幕尺寸有限时,无法一次性展示大量数据,分页可以更好地适应屏幕,提供更清晰和易于操作的界面。四是数据更新不频繁。如果数据的更新频率较低,分页可以避免用户每次都需要加载大量可能不变的数据。 阅读详情
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class DemoJ {
	
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		PanelTable1 panel = new DemoJ().new PanelTable1();
        // 6. 创建窗口并添加滚动面板
        JFrame frame = new JFrame("成绩表");
        frame.add(panel);
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

	}
	
	//创建表格类
	private class PanelTable1 extends JPanel{
		PanelTable1(){
			setLayout(new GridLayout(2,1));
			//1.创建二维数组 ,表格数据
			Object [][]data= {{"张三",75,98,87},{"李四",45,56,67},{"王五",66,56,86}};
			//2.创建列名数组(表头)
			String [] columnsName ={"姓名","语文","数学","英语"};
			//3.创建表格模型
			DefaultTableModel model = new DefaultTableModel (data,columnsName);
			//4.创建JTable
			JTable table =new JTable(model);
			//5.把表格放在滚动面板里
			JScrollPane js = new JScrollPane(table);
			//6.添加到面板
			add(js);
			
			JPanel panel = new JPanel();
			panel.setLayout(new FlowLayout());
			JButton b1 = new JButton("增加");
			JButton b2 = new JButton("删除");
			JButton b3 = new JButton("修改");
			JButton b4 = new JButton("检查");
			JLabel label = new JLabel("查询内容");
			panel.add(b1);panel.add(b2);panel.add(b3);panel.add(b4);panel.add(label);
			add(panel);
			
			b1.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					model.addRow(new Object[] {"赵六",86,52,75});
					model.insertRow(1, new Object[] {"赵六",86,52,75});
				}
			});
			b2.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					model.removeRow(1);
				}
			});
			
			b3.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					model.setValueAt(80, 0, 1);
				}
			});
			b4.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent e) {
					// TODO Auto-generated method stub
					label.setText(model.getValueAt(0, 1).toString());
				}
			});
		}
		
		
	}

}

JTable 是 Java 里用来展示表格数据的 “电子表格小能手”,就像 Excel 表格一样,有行有列,能装各种数据。

二、二维数组是啥?

二维数组就是 “数组套数组”,像个棋盘一样有行有列。
比如,你有 3 个学生的成绩,每个学生有 4 门课的分数,就可以用一个 3 行 4 列 的二维数组来存,就像这样:

// 二维数组 = [行][列]
int[][] scores = {
    {90, 85, 95, 100},  // 第1个学生的4门课成绩
    {70, 80, 75, 85},   // 第2个学生的4门课成绩
    {60, 65, 70, 75}    // 第3个学生的4门课成绩
};
  • scores[0][0] 就是第 1 行第 1 列的数据(90)。
  • scores[1][2] 就是第 2 行第 3 列的数据(75)。
  • 可以把它想象成一个表格,第一个下标是行号,第二个下标是列号。

 

用二维数组创建 JTable 

 

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class JTableDemo {
    public static void main(String[] args) {
        // 1. 创建二维数组数据(表格内容)
        Object[][] data = {
            {"张三", 20, 90.5},
            {"李四", 21, 85.0},
            {"王五", 22, 92.3}
        };

        // 2. 创建列名数组(表头)
        String[] columnNames = {"姓名", "年龄", "分数"};

        // 3. 创建表格模型(剧本)
        DefaultTableModel model = new DefaultTableModel(data, columnNames);

        // 4. 创建 JTable(演员按照剧本来表演)
        JTable table = new JTable(model);

        // 5. 把表格放到滚动面板里(表格太大时可以滚动)
        JScrollPane scrollPane = new JScrollPane(table);

        // 6. 创建窗口并添加滚动面板
        JFrame frame = new JFrame("成绩表");
        frame.add(scrollPane);
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

 

代码解释(超简单版)

  1. 数据准备:
    用二维数组 data 存表格内容,每个子数组就是一行数据。

  2. 列名设置:
    columnNames 数组定义表头(第一行)的名称。

  3. 创建模型:
    DefaultTableModel 把数据和列名组合成表格的 “剧本”。

  4. 创建表格:
    JTable 根据模型创建表格,就像演员按照剧本表演一样。

  5. 添加滚动条:
    JScrollPane 让表格可以滚动,防止数据太多显示不全。

  6. 显示窗口:
    最后把表格放到窗口里,搞定!

 

总结(划重点)

  1. 二维数组 = 表格数据(行和列)。
  2. JTable = 展示表格的组件。
  3. DefaultTableModel = 连接数据和表格的 “桥梁”。
  4. JScrollPane = 给表格加个滚动条。

**************************************************************************************************************** 

 

一、DefaultTableModel 是啥?

想象一下,DefaultTableModel 是 Java 表格世界的「武林盟主」,负责管理 JTable 的数据和规则。

  • 它维护着一个「数据仓库」(二维数组)和「表头清单」(一维数组)。
  • 所有对表格的增删改查操作,都要通过它来发号施令!

 

1. 增 = 招兵买马

场景:新增一行数据(比如给表格加个新学生)。

// 方法1:直接添加一行数据(像往花名册里加个新兵)
model.addRow(new Object[]{"赵六", 23, 88.5});

// 方法2:插入到指定位置(比如把新兵安排到第2排)
model.insertRow(1, new Object[]{"田七", 24, 91.0});
2. 删 = 开除弟子

场景:删除一行数据(比如开除某个学生)。
代码:

// 删除第2行(注意:行号从0开始,所以这里删的是表格里的第3行)
model.removeRow(1);

 

3. 改 = 易容术

场景:修改某个单元格的数据(比如把李四的分数从 85 改成 95)。
代码:

// 把第1行第2列(李四的分数)改成 95.0
model.setValueAt(95.0, 0, 2);
4. 查 = 武林悬赏令

场景:获取某个单元格的数据(比如查看王五的年龄)。
代码:

// 获取第2行第1列(王五的年龄)
Object age = model.getValueAt(1, 1);
System.out.println("王五的年龄是:" + age);

 

查看数据规模

int rowCount = model.getRowCount();    // 查看有多少行(多少学生)
int columnCount = model.getColumnCount();  // 查看有多少列(多少信息字段)

 修改表头

// 把第3列的表头从「分数」改成「期末成绩」
model.setColumnName(2, "期末成绩");

. 清空表格(大清洗)

// 方法1:一行一行删(适合慢慢清理)
while (model.getRowCount() > 0) {
    model.removeRow(0);
}

// 方法2:直接重置(适合一键清空)
model.setRowCount(0);

 

  1. DefaultTableModel 是 JTable 的「指挥官」,控制数据的增删改查。
  2. 增:addRow() 或 insertRow()。
  3. 删:removeRow()。
  4. 改:setValueAt()。
  5. 查:getValueAt()。

 

 

 

 

 

 

Java Swing之JTable美化 从表头、单元格格式、行高、对齐方式、背景色、前景色等几个方面美化JTable表格,使其具有一定的美观性。 阅读详情

相关推荐

【Java】高级Swing——JTable

相比JList,JTable显然要复杂很多。JTabel同样继承了java一贯的设计风格,将数据模型与表格的绘制分离。即有默认的样式,也提供了很多接口。这不仅使Java的表格设计思路清晰,而且几乎所有的个性化需要也可以得到满足。 缺点是:Java库中封装了过多的方法,为了使其尽可能通俗易懂,方法名和常量名非常长,这让Java代码看起来十分啰嗦,并不优美。但这在强大的IDE中可以用代码提示功能解决。 1.根据构造放发创建JTabel;可以传表的内容(二位数组),和表头(一维数组) 下面是我校的小图丁志愿者录取

m0_47202518的博客 591

Java Swing之JTable举例

使用JTable的两个不同的构造方法JTable(Object[][] rowData,Object []columnnames)和JTable(TableModel dm)分别创建表格。

编程语言教学工作者的博客 1452

Java Swing大神必经之路14:Java Swing JTable

1 简介 JTable用于显示和编辑常规的二维单元格表。有关面向任务的文档和使用JTable的示例,请参见Java教程中的如何使用表。 JTable具有许多功能,可以自定义其呈现和编辑功能,但是为这些功能提供了默认设置,因此可以轻松设置简单的表。例如,要建立一个包含10行10列数字的表: TableModel dataModel = new AbstractTableModel(){ Public int getColumnCount(){返回10; } Public int getRowCount(

常年被追砍的博客 380

Java Swing JTable添加JButton按钮

Java Swing 中JTable添加按钮流程如下: 实现TableCellRenderer接口 实现TableCellEditor接口(或者extends DefaultCellEditor) 继承AbstractTableModel,重写getValueAt()和getColumnClass() 获取列分别设置渲染器和编辑器 代码: 实现TableCellRenderer接口: ...

ALEX的博客 1万+

cst-python联合仿真的问题解决

cst与python联合仿真出现无法调用CST的问题解决

ayihu_的博客 2370

深入解析EXI协议在ISO15118-2命令测试中的编解码实践

本文深入探讨了EXI协议在ISO15118-2车桩通信标准中的关键作用与实践方法。EXI编解码测试是确保通信准确性与效率的核心环节,文章详细介绍了从搭建测试环境、选择工具库到编写完整测试代码的全过程,并分析了结果差异的常见原因与调试技巧,为电动汽车充电系统的开发者提供了实用的技术指南。

potato的博客 1048

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

8-1:使用JTable组件:类层次结构图:java.lang.Object--java.awt.Component--java.awt.Container--javax.swing.JComponent--javax.swing.JTabel在使用JTable以前,我们先看一下它的构造函数有哪些, 以及应该如何使用:JTabel构造函数:JTable():建立一个新的JTables,并使用系统默...

weixin_33708562的博客 1682

华为昇腾Ascend C中级认证考试-tanh

注册昇腾社区账号后可以免费领券考试。

2600_96284887的博客 468

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

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

weixin_31742467的博客 3578

学好超几何分布的核心公式,破解双色球!

彩票本质是概率游戏,不存在"必中公式"科学投注的核心是风险收益比管理长期投注的期望值始终为负(理论回报率约47%-63%)数学维度:运用概率工具优化策略经济维度:控制投注成本在可承受范围人文维度:将彩票视为社会公益的参与方式通过本文构建的数学模型,彩民可以在概率框架内实现更理性的投注决策。但最终能否收获幸运,仍取决于那个永恒的未知数——概率女神的眷顾。一、超几何分布的核心公式。

weixin_44904675的博客 1万+

学生党投稿Applied Soft Computing:从导师账号登录到通讯作者设置的全流程解惑

本文详细解析了学生投稿Applied Soft Computing期刊的全流程,重点介绍了导师账号登录、通讯作者设置、作者排序调整以及开放获取费用等关键环节的避坑技巧。针对LaTeX稿件处理和财务选项选择提供了实用建议,帮助学生顺利完成SCI期刊投稿。

weixin_30352191的博客 211

Java Swing JTable:表格

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

unber的博客 5687

2.Vivado软件基础操作

在本章节,我们以一个简单的计数器实例,介绍FPGA开发软件Vivado的基础操作流程,计数器实例程序的设计,在本课程中先不同掌握,后续课程将针对verilog编程进行讲解。 打开Vivado软件,会看到如下的界面: 点击如下图所示的: 点击Next> 将这个地方,设置路径,注意路径必须是英文路径。且文件夹名称第一个字符不能为数字。所有路径的名称的字符数量不能超过144个符号。 点击Next> 点击Next> 点...

FPGA/MATLAB学习教程/源码/项目合作开发 4477

Java Swing JTable Demo

最近要写一个界面用来展示从网上抓下来的论文列表,所以用到Jtable,这里用一个demo来演示一下。 类层次结构图:java.lang.Object--java.awt.Component--java.awt.Container--javax.swing.JComponent--javax.swing.JTabel在使用JTable以前,我们先看一下它的构造函数有哪些, 以及应该如何使用:JTab

慕希颜 1503

Unity3D实现自定义河流路径或泥石流路径

此工具是一个插件,插件很好用,可以根据地形编辑河流的走向以及宽度,也可以发挥想象编辑成其他的效果,比如泥石流效果,岩浆效果,小溪,或者大江或者大河等等博客将会介绍可以编辑河流的工具的使用。希望这篇博客对Unity的开发者有所帮助。大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。提示:以下是本篇文章正文内容,下面案例可供参考本次总结的就是工具的使用, 有需要会继续增加功能不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒!

心疼你的一切博客 5264

最佳RANSAC算法拟合矩形的实现(基于PCL库)

最佳RANSAC算法是一种常用的参数估计方法,用于从数据集中拟合出最佳的模型。在计算机视觉和图像处理领域,最佳RANSAC算法常用于拟合几何形状,如矩形。本文将详细介绍如何使用点云库(PCL)中的最佳RANSAC算法来拟合矩形,并提供相应的源代码。

JbPatch的博客 1541

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java swing之JTable与TableModel

package PictureLink; /** * Test测试类 * @author lxw * */ public class Test { public static void main(String[] args) { new GameFrame(); } } package PictureLink;import java.awt.Color; im

wind14的博客 4930

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

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

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java Swing中的表格JTable

目录Java Swing中表格的用法JTableDefaultTableModule Java Swing中表格的用法 ☆JTable是一个JComponent。 ☆JComponent是除顶层容器外所有 Swing 组件的基类,要使用继承自 JComponent 的组件,必须将该组件置于一个根为顶层 Swing 容器的包含层次结构(containment hierarchy)中。 ☆顶层 Swi...

jierxiaoyao的博客 1099

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java Swing JTable

1 简介 JTable用于显示和编辑常规的二维单元格表。有关面向任务的文档和使用JTable的示例,请参见Java教程中的如何使用表。 JTable具有许多功能,可以自定义其呈现和编辑功能,但是为这些功能提供了默认设置,因此可以轻松设置简单的表。例如,要建立一个包含10行10列数字的表: TableModel dataModel = new AbstractTableModel(){ Public int getColumnCount(){返回10; } Public int getRowCount(){返

JavaEdge全是干货的技术号 2568

Java Swing中关于JTable的一些总结

上周继续用Swing做小项目,其中我在实现数据的查询过程中发现,以往的习惯是更新数据筛选条件都要去数据库中重新查询,但是我把数据库部署到云端发现这样查询数据压力较大,程序运行很慢,最好是少执行数据库的操作,多在本地实现数据的修改,于是我就仔细研究了研究JTable的一些功能,发现JTable的作为容器还是可以往里面添加一些控件来调用RowSorter对表中数据进行筛选和排序的。 一,通过点击列名

cy96151的博客 1335

Java Swing JTable 的使用

Java Swing JTable 的使用

Huathy的博客 663

Java Swing Jtable的简单应用

Java Swing Jtable的简单应用 用最简单的模式:DefaultTableModel 代码如下: import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.border.EmptyBorder; import javax.swing.ta

bolo渔夫的博客 321

在Java Swing的JTable显示数据库中的记录

 在这里我说到两个方面的内容,一个是java GUI(用户图形界面),一个是JDBC(JAVA访问数据库)。两个方面的内容.我们先说JDBC,然后将查询的内容显示到JTable中 要访问数据库,当然要导入驱动包,我这里使用的是mysql,所以导入的是msyql的驱动程序包mysql-connector-java-3.1.12-bin.jar.并加入至classpath或导入lib目

haha_mingg的专栏 1万+

java swing 开发 -JTable

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

chun1927506的博客 202

java swing 开发 -JTable

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

烟花散尽的专栏 7239
上一篇: 【无标题】关于 setBorder 和 BorderFactory
下一篇: Java的null和值传递,理解透彻至少能打牢Java基础的1/10
wu_android
博客等级 码龄10年 94粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值