Java SWT 表格Table实时刷新数据

article/2025/9/14 4:10:40

一、动态展示数据

 当对表格展示的数据进行删除和增加的时候,想实时进行表格数据更新显示。用到的方法是,首先将表格数据全部删掉,然后在读取数据库最新的数据显示到表格中
 可以将显示表格信息的代码封装成一个方法,当对当前表格进行插入和删除数据之后,调用之前封装的方法即可。
1.清空表格:

Table table =  new Table(shell,SWT.NONE);
table.removeAll();

2.更新数据:

TableItem item = null;try {List<Map<String, Object>>  list = dao.finds(); //dao.getDatas()为从数据库读取的数据for(Map<String,Object> m:list) {item = new TableItem(table,SWT.NONE);item.setText(new String[]{"数据1","数据2","数据3"	});}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}	

 删除全部数据可以直接放在更新数据内。

二、案例

 点击确认按钮之后,更新当前表格的值,都是模拟的数据。
 显示数据代码:

private void showTableInfos() {table.removeAll();  //首先清空之前table里的数据。TableItem item = null;try {List<Map<String, Object>>  list = students;for(Map<String,Object> m:list) {item = new TableItem(table,SWT.NONE);item.setText(new String[]{String.valueOf(m.get("id")),String.valueOf(m.get("name")),	});}} catch (Exception e) {e.printStackTrace();}	}

效果:
在这里插入图片描述
 点击确认后,表格会更新:会将第一行的数据删除。只是模拟数据。实际上只需要再次读取更新后的数据就可了。
在这里插入图片描述
完整代码:

package ctest;import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;public class Test {protected Shell shell;private Table table;List<Map<String,Object>> students = null;/*** Launch the application.* @param args*/public static void main(String[] args) {try {Test window = new Test();window.open();} catch (Exception e) {e.printStackTrace();}}/*** Open the window.*/public void open() {Display display = Display.getDefault();createContents();shell.open();shell.layout();while (!shell.isDisposed()) {if (!display.readAndDispatch()) {display.sleep();}}}/*** Create contents of the window.*/protected void createContents() {shell = new Shell();shell.setSize(730, 630);shell.setText("SWT Application");table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);table.setBounds(195, 127, 206, 250);table.setHeaderVisible(true);table.setLinesVisible(true);TableColumn tblclmnNewColumn = new TableColumn(table, SWT.NONE);tblclmnNewColumn.setWidth(100);tblclmnNewColumn.setText("ID");TableColumn tblclmnNewColumn_1 = new TableColumn(table, SWT.NONE);tblclmnNewColumn_1.setWidth(100);tblclmnNewColumn_1.setText("Name");Button btnNewButton = new Button(shell, SWT.NONE);btnNewButton.addSelectionListener(new SelectionAdapter() {@Overridepublic void widgetSelected(SelectionEvent e) {students.remove(1); //只是用来模拟,实际只需要进行数据库删除再从数据库读取数据即可。showTableInfos();}});btnNewButton.setBounds(248, 404, 98, 30);btnNewButton.setText("确认");initDatas(); //模拟数据showTableInfos();}private void showTableInfos() {table.removeAll();  //首先清空之前table里的数据。TableItem item = null;try {List<Map<String, Object>>  list = students;for(Map<String,Object> m:list) {item = new TableItem(table,SWT.NONE);item.setText(new String[]{String.valueOf(m.get("id")),String.valueOf(m.get("name")),	});}} catch (Exception e) {e.printStackTrace();}	}public void initDatas(){students = new ArrayList<>();Map<String,Object> s1 = new HashMap<>();s1.put("id","1001");s1.put("name","张三");Map<String,Object> s2 = new HashMap<>();s2.put("id","1002");s2.put("name","李四");Map<String,Object> s3 = new HashMap<>();s3.put("id","1003");s3.put("name","王五");students.add(s1);students.add(s2);students.add(s3);}}

三、删除选中表格行

 如果遇到想删除表格中的某行数据,那么就需要通过table的事件监听获取选中该行的数据,然后将数据库里的这行数据删除,在更新数据即可


http://chatgpt.dhexx.cn/article/FqEgcuAS.shtml

相关文章

Java SWT封装Table显示数据

一个表格就类似于一张二维表。第一行为关系模型&#xff0c;就是每一列的列名。从第二行开始就是表的数据&#xff0c;简称元组。下面实现对其Table的封装。 首先显示一个窗口。创建一个Table。将在showTableInfos()方法对Table表格进行封装。 import org.eclipse.swt.widgets.…

SWT控件总结

控件palette 1.System Choose component 选择组件&#xff1a;允许选择组件类型并将其拖放到设计画布上 Tab Order标签的顺序&#xff1a;设置所选选项卡顺序 2.Composites Composite 复合&#xff1a;能够包含其他控件的控件 Group 集团&#xff1a;提供带有可选标题的蚀…

SWT和JFace应用笔记

SWT和JFace应用笔记 链接&#xff1a;https://pan.baidu.com/s/1To4Lhgan4xEr1iaFA0Rerg 提取码&#xff1a;63qm 1.SWT笔记 一.创建一个SWT程序有3个部分 1.初始化窗口:首先创建Dispaly对象和Shell对象。Display&#xff1a;对象封装了调用操作系统的有关方法Shell&#xf…

matlab swt函数,matlab swt 函数出错

matlab swt 函数出错 我在用matlab swt 函数分解信号时总是出现以下错误&#xff0c;麻烦各位高手告知该怎么修改&#xff0c;swt函数如何ERROR ... ---------------------------------------------------------------------------------------------------------------------…

【SWT】自定义数据表格

目的 使用SWT技术自定义数据表格&#xff0c;本文抛砖引玉&#xff0c;给出了SWT构建数据表格的基本思路和简单实现。更多特殊需求即表格功能实现待续…… 思路 数据表格由表格头与表格体两边部分组成。 表格头部分是固定的&#xff0c;其字段右侧包含一个简单的表格工具–…

【SWT】Lable 文字折行

目标 当Label 中的文字过多时&#xff0c;使得文字折行显示。 效果如图所示&#xff1a; 分析与实践 Label 自带样式是一行显示所有信息。当一行显示不下时&#xff0c;超出部分会被隐藏掉&#xff0c;当Label有足够长度时再将其展示出来。Label这种处理超出部分的方式很粗…

java swt 几种布局_实战SWT布局

fortune 阅读(577) 评论(0) 编辑 收藏 所属分类: java技术 标准的SWT布局类FillLayout&#xff1a;在容器中以相同的大小单行或单列的排列组件 RowLayout&#xff1a;以单行或多行的方式使用几个选项(fill,wrap,spacing,justify,type)定制组件的排列方式 GridLayout&#xff…

【SWT】内容分割线

目标 SWT 容器中画横向直线或竖向直线将容器中的内容分割开来。本文介绍了官方的两个示例&#xff0c;效果图见实践部分。 分析 SWT 中至少由两种方法画直线&#xff08;横向或纵向&#xff09; SWT 中的GC可以画直线 这种方法最容易想到&#xff0c;但实现起来比较麻烦&a…

SWT

strock width transform,全称笔画宽度变换&#xff0c;是一种局部的图像算子用于提取字符&#xff08;letter&#xff09;的笔画宽度作为图像特征。算法步骤如下&#xff1a; 分成三个部分&#xff1a; - 用canny算子计算梯度及方向 - SWT提取笔画宽度得到字符候选区域&am…

eclipse下搭建SWT图形界面开发环境

什么是SWT 参考&#xff1a;http://www.cppblog.com/baby-fly/archive/2009/10/20/99008.html 用java的人一定都知道AWT和Swing&#xff0c;而SWT(Standard Widget Toolkit)则是由Eclipse项目组织开发的一套完整的图形界面开发包&#xff0c;虽然当初仅仅是IBM为了编写Eclipse的…

SWT布局(Layouts)

每种类型操作系统对屏幕的定义不一样&#xff0c;在开发跨平台应用软件时&#xff0c;我们一般都会使用布局&#xff08;Layout&#xff09;来管理复合控件&#xff08;Composite&#xff09;中子控件的位置和大小。通过布局&#xff0c;程序员可以充分展示那些埋没已久的艺术细…

SWT简介

SWT简介 1. 为什么要使用SWT?  SWT是一个IBM开发的跨平台GUI开发工具包。在SWT之前&#xff0c;Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit)。虽然AWT框架也使用的是原生窗口部件(native widgets)&#xff0c;但是它一直未能突破LCD问题。LCD问…

[转]实时股票数据接口大全

from: http://www.21andy.com/blog/20090530/1313.html 实时股票数据接口大全 股票数据的获取目前有如下两种方法可以获取:1. http/javascript接口取数据2. web-service接口 1.http/javascript接口取数据 1.1Sina股票数据接口 以大秦铁路&#xff08;股票代码&#xff1a;…

股票数据在线获取

推荐&#xff1a;使用如下地址注册tushare并分享此链接。 https://tushare.pro/register?reg133232 分享此链接&#xff0c;注册tushare. 以前是使用tushare等下载保存到本地数据库后进行计算分析。 现在不想维护本地数据库&#xff0c;想使用时直接在线获取数据。经查找如…

获取股票实时交易数据的方法

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 获取股票实时交易数据的方法 注:本文为原创文章,转载时请注明转载地址。炒股有一段时间…

实时股票数据接口 (转,以防有用)

&#xfeff;&#xfeff; http://blog.sina.com.cn/s/blog_510844b70102wrvf.html 实时股票数据接口 股票数据的获取目前有如下两种方法可以获取: 1. http/javascript接口取数据 2. web-service接口 1.http/javascript接口取数据1.1Sina股票数据接口 以大秦铁路&#xff08;…

获取股票数据【实时更新股票数据、创建你的股票数据】、计算交易指标【买入、卖出信号、计算持仓收益、计算累计收益率】

在上一次获取股票数据【使用JQData查询行情数据、财务指标、估值指标】学习了使用JQData来查询股票相关数据&#xff0c; 这次则开始一点点构建咱们的量化交易系统了。 量化交易平台功能模块了解&#xff1a; 对于一个量化交易平台&#xff0c;它主要包含如下功能模块&#x…

使用Python获取股票实时数据和历史数据

决定新建一个专栏&#xff0c;专门研究股票数据的API接口。 由于不是混金融领域的人&#xff0c;百度调研了一会儿&#xff0c;没有找到合适的大公司维护的API接口。 yahoo-finance PyPI 这玩意架梯子都访问不到数据&#xff0c;不知道乍回事。许多大牛维护的pip包都是基于这…

Tushare免费获取股票数据:实时数据,历史数据,行情数据

一 操作手册 引导用户顺利开始使用Tushare Pro数据&#xff0c;以下步骤将带您开始Tushare数据之旅&#xff1a; 用户注册登录后可调用数据&#xff1a;https://tushare.pro/register?reg399205 二 如何获取TOKEN凭证 1、登录成功后&#xff0c;点击右上角->个人主页 2、…

如何用 Python 获取实时的股票数据?

这个我会&#xff01;先上图 这篇回答中&#xff0c;我将向你展示两种不同的代码版本&#xff08;加强版和一般版&#xff09; 代码运行环境说明&#xff08;非常重要&#xff09; Python版本要求 Python 3 需要安装的库 efinance 库的安装方法是&#xff1a;打开 cmd&#x…