栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java SWT 表格Table实时刷新数据

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java SWT 表格Table实时刷新数据

一、动态展示数据

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

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

 2.更新数据:

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

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

二、案例

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

private void showTableInfos() {
		table.removeAll();  //首先清空之前table里的数据。
		TableItem item = null;
		try {
			List>  list = students;
			
			for(Map 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> students = null;
	
	
	public static void main(String[] args) {
		try {
			Test window = new Test();
			window.open();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	
	public void open() {
		Display display = Display.getDefault();
		createContents();
		shell.open();
		shell.layout();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}

	
	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() {
			@Override
			public 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>  list = students;
			
			for(Map 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 s1 = new HashMap<>();
			s1.put("id","1001");
			s1.put("name","张三");
			Map s2 = new HashMap<>();
			s2.put("id","1002");
			s2.put("name","李四");
			Map s3 = new HashMap<>();
			s3.put("id","1003");
			s3.put("name","王五");
			
			students.add(s1);
			students.add(s2);
			students.add(s3);
		
	}
	
	
	
}

三、删除选中表格行

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762530.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号