【Java】JTable的数据刷新
前言
这段时间在写一个大实验,水果超市管理系统,yes,我觉得挺大的,但是就当成了一个实验,接下来还有一个课程设计和一个实训,more bigger...
问题
在我把其他的都写好的时候去写UI层,发现,我的表格刷新是一个大问题,那么究竟怎么灵活的设置表格中的数据呢?
这就不得不提一下TableModel这个怪东西了
TableModel:
public interface TableModelTableModel 接口指定了 JTable 用于询问表格式数据模型的方法。
只要数据模型实现了 TableModel 接口,就可以通过以下两行代码设置 JTable 显示该模型:
TableModel myData = new MyTableModel();
JTable table = new JTable(myData);
DefaultTableModel(Object[][] data, Object[] columnNames)
构造一个 DefaultTableModel,并通过将 data 和 columnNames 传递到 setDataVector 方法来初始化该表。
JTable:
DefaultTableModel 是一个模型实现,它使用一个 Vector 来存储所有单元格的值,该 Vector 由包含多个 Object 的 Vector 组成。除了将数据从应用程序复制到 DefaultTableModel 中之外,还可以用 TableModel 接口的方法来包装数据,这样可将数据直接传递到 JTable,如上例所示。这通常可以提高应用程序的效率,因为模型可以自由选择最适合数据的内部表示形式。
以上来自JavaAPI
人话说
TableModel就是存放JTable表格数据的东西
下面是一个简单的demo,希望对你有帮助
package test;
import javax.swing.*;
import javax.swing.table.*;
public class TableTest extends JFrame {
private JLabel title = new JLabel("水果列表"); //上部标题
private JScrollPane pane = new JScrollPane(); //表格滚动面板
private JTable table = new JTable(); //水果表格
public TableTest() {
init();//窗口初始化
addComponent();//添加表格
updateTable();//刷新表格数据
}
public static void main(String[] args) {
new TableTest();
}
//窗口初始化
public void init() {
this.setTitle("水果管理系统!");
this.setSize(600, 420);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
//添加表格
public void addComponent() {
this.setLayout(null);//设置绝对布局
//添加标题
title.setBounds(265, 20, 70, 25);
this.add(title);
//表格
table.getTableHeader().setReorderingAllowed(false);//列不能移动
table.getTableHeader().setResizingAllowed(false);//不可拉动表格
table.setEnabled(false);//表格不可更改数据
pane.setBounds(50, 50, 500, 200);
pane.setViewportView(table);//滚动面板显示表格数据
this.add(pane);
}
//刷新表格数据
public void updateTable() {
String[] title = {"水果编号","水果名称","水果单价(/元)","计价单位"};
Object[][] rowData = {
{1,"苹果",5.5,"kg"}
};
TableModel dataModel = new DefaultTableModel(rowData, title);
table.setModel(dataModel);
}
}
【Java】JTable的数据刷新的更多相关文章
- JTable动态刷新数据
http://www.cnblogs.com/fnlingnzb-learner/p/6025408.html 注意下面几个方法的应用场景,不限于JTable,其他swing组件一样 ———————— ...
- Java 导出大批量数据excel(百万级)(转载)
参考资料:http://bbs.51cto.com/thread-1074293-1-1.html http://bbs.51cto.com/viewthread.ph ...
- Java 批量插入数据(Oracle)
//批量添加20000条数据用时8秒. try { String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SI ...
- Spring Data:企业级Java的现代数据访问技术(影印版)
<Spring Data:企业级Java的现代数据访问技术(影印版)>基本信息原书名:Spring Data:Modern Data Access for Enterprise Java作 ...
- Jvm基础(1)-Java运行时数据区
最近在看<深入理解Java虚拟机>,里面讲到了Java运行时数据区,这是Jvm基本知识,把读书笔记记录在此.这些知识属于常识,都能查到的,如果我有理解不对的地方,还请指出. 首先把图贴上来 ...
- as3+java+mysql(mybatis) 数据自动工具(四)
现在介绍一下只配置 as3 与 java 公用的数据类,这种配置一般是该数据类只需要在 as3 与 java 之间转换,跟数据库没有关系.比如在客户端与服务端的数据交换中,需要定义一个统一返回请求的数 ...
- Java中静态数据的初始化顺序
Java的类中的数据成员中包含有静态成员(static)时,静态数据成员的初始化顺序是怎样的呢? [程序实例1] import java.util.*; import java.lang.*; imp ...
- PowerBI开发 第七篇:数据集和数据刷新
PowerBI报表是基于数据分析的引擎,数据真正的来源(Data Source)是数据库,文件等数据存储媒介,PowerBI支持的数据源类型多种多样.PowerBI Service(云端)有时不直接访 ...
- 读书笔记-浅析Java运行时数据区
作为一个 Java 为主语言的程序员,我偶尔也需要 用 C/C++ 写程序,在使用时让我很烦恼的一件事情就是需要对 new 出来的对象进行 delete/free 操作,我老是担心忘了这件事情,从而导 ...
- 一句话了解JAVA与大数据之间的关系
大数据无疑是目前IT领域的最受关注的热词之一.几乎凡事都要挂上点大数据,否则就显得你OUT了.如果再找一个可以跟大数据并驾齐驱的IT热词,JAVA无疑是跟大数据并驾齐驱的一个词语.很多人在提到大数据的 ...
随机推荐
- Less-3 和 Less-4 ')闭合绕过
判断注入类型 测试:http://localhost/sqli-labs-master/Less-3/index.php?id=1a 正常回显,可以判断为 字符型注入 闭合字符串执行而已 SQL语句 ...
- Docker下部署LNMP黄金架构
一.部署lnmp 1.网络规划 172.16.10.0/24nginx:172.16.10.10mysql:172.16.10.20php:172.16.10.30网站访问主目录:/wwwrootng ...
- Java笔记第六弹
字符缓冲流 //构造方法 BufferedWriter(Writer out); BufferedReader(Reader in); 相关应用: import java.io.*; public c ...
- Python学习笔记--序列+集合+字典
序列 切片:从一个序列中,取出一个子序列 注意: 案例: 实现: 集合 无序性.唯一性 添加新元素: .add 移除元素: .remove 随机取出某个元素: 清空集合: .clear 取两个集合的差 ...
- GCC编译器编译过程
GCC编译器编译过程 #生成test可执行文件 g++ test.cpp -o test 其实,上述命令可以分解为以下几个步骤 1. 预处理-Pre-Processing # -E 选择指示编译器仅对 ...
- RTE2021 回顾丨实践中的摸爬滚打,AI OPS 落地之路
本文整理自声网Agora SD - RTN 网络传输质量负责人于涛在 RTE2021 实时互联网大会上的演讲分享.他在演讲中针对传统 OPS 痛点.AI OPS 的优势以及 AI OPS 工程化的难点 ...
- Python Web开发初试,基于Flask
目录 关于web框架 Python flask使用 关于web框架 仅仅对于应用层的coder而言,web框架的使用其实就是写路由,分发路由,写输出.当然如果要安全,要测试,要写优秀的接口,那需要继续 ...
- 使用K8S进行蓝绿部署的简明实操指南
在之前的应用部署系列文章里,我们已经介绍过什么是蓝绿部署.如需回顾,点击下方文章链接即可重温.本文我们将会介绍如何使用 Kubernetes 实现蓝绿部署. 应用部署初探:3个主要阶段.4种常见模式 ...
- 如何通过Java应用程序将PDF转为图片格式?
PDF文件和图片文件,这是两种完全不一样的格式,可是有的时候这两种格式却是有相互转换的需要,大家在工作中遇到PDF文件转图片文件的问题时是怎么解决的呢?你们使用的方法简单方便吗?如果很麻烦的话,不妨来 ...
- OPP前三次作业总结
OPP前三次作业总结 目录 前言: 第一次OOP训练: 7-7 有重复的数据 设计与分析: 具体代码 踩坑心得 改进建议 7-8 从一个字符串中移除包含在另一个字符串中的字符 设计与分析: 具体代码 ...