Java Swing实现展示数据,以及过滤排序

public class RelationCostctrTable extends DefaultTableModel {
public RelationCostctrTable(Vector<Vector<String>> tableValues, Vector<String> columnNames) {
super(tableValues, columnNames);
}
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
}
public class JtableDemo4 extends JFrame {
JtableDemoTbale2 defaultTableModel;
/**
* 取消按钮
*/
private JButton cancelBtn;
// 选中行索引
int selectedRow;
public static void main(String[] args) {
JtableDemo4 demo = new JtableDemo4();
demo.setVisible(true);
}
public JtableDemo4() {
this.setTitle("进项发票关联成本合同");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(700, 450);
// JFrame窗体居中
this.setLocationRelativeTo(null);
String src = "/image/logo.png"; // 图片路径
Image image = null;
try {
image = ImageIO.read(this.getClass().getResource(src));
} catch (IOException e) {
e.printStackTrace();
}
// 创建图片对象
this.setIconImage(image); // 设置图标
final JScrollPane scrollPane = new JScrollPane();
this.getContentPane().add(scrollPane, BorderLayout.CENTER);
// 设置JTable中的列名
Vector<String> columnNames = new Vector<String>();
columnNames.add("组织");
columnNames.add("合同编码");
columnNames.add("合同主键");
Vector<Vector<String>> tableValues = new Vector<Vector<String>>();
for (int row = 1; row < 29; row++) {
Vector<String> rowV = new Vector<String>();
rowV.add("A" + row);
rowV.add("B" + row);
rowV.add("C" + row);
tableValues.add(rowV);
}
// 创建JTable (表格)
final JTable table = new JTable();
// 创建表格模型
defaultTableModel = new JtableDemoTbale2(tableValues, columnNames);
final TableRowSorter<JtableDemoTbale2> sorter = new TableRowSorter<JtableDemoTbale2>(
defaultTableModel);
table.setRowSorter(sorter);
// 设置JTable的表格模型
table.setModel(defaultTableModel);
table.getTableHeader().setReorderingAllowed(false);
/*
* 将JTable添加到JScrollPane中,
*/
scrollPane.setViewportView(table);
// 设置表格的选择模式---为单选模式
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
final JPanel panel = new JPanel();
panel.setBackground(Color.gray);
this.getContentPane().add(panel, BorderLayout.SOUTH);
final JTextField filterText = new JTextField(20);
JButton gl = new JButton("过滤");
JButton glcbht = new JButton("关联成本合同");
panel.add(filterText);
panel.add(gl);
panel.add(glcbht);
/**
* 点击JScrollPane滚动面板,取消选中的行
*/
scrollPane.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// 取消掉选中行,但是选中行的索引值还是在的,没有取消掉
table.clearSelection();
// 显示选中行的索引值。
System.out.println("-----------------" + selectedRow);
}
});
gl.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = filterText.getText();
if (text.length() == 0) {
sorter.setRowFilter(null);
} else {
sorter.setRowFilter(RowFilter.regexFilter(text));
}
}
});
glcbht.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 获取到JTable中选定行的---索引值
selectedRow = table.getSelectedRow();
// 获取到指定单元格的值
if(selectedRow < 0)
return;
int i = table.convertRowIndexToModel(table.getSelectedRow());
Object oa = defaultTableModel.getValueAt(i, 0);
Object ob = defaultTableModel.getValueAt(i, 1);
Object oc = defaultTableModel.getValueAt(i, 2);
int row = selectedRow+1;
System.out.println("第" + row + "行," + "内容:" + oa + " "
+ ob + " " + oc);
}
});
}
}
Java Swing实现展示数据,以及过滤排序的更多相关文章
- [Java] 读写字节数据,过滤流DataOutputStream和DataInputStream
package test.stream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io ...
- Flex与Java交互(Flex调用java类展示数据)解析xml展示数据
Flex与java通信最简单例子(详细说明了各种需要注意的配置):http://blog.csdn.net/u010011052/article/details/9116869 Flex与java通信 ...
- 「福利」Java Swing 编写的可视化算法工程,包含树、图和排序
之前在整理<学习排序算法,结合这个方法太容易理解了>这篇文章时,发现了一个用 Java Swing 编写的可视化算法工程,真心不错!包含了常用数据结构和算法的动态演示,先来张图感受下: 可 ...
- Java Swing客户端小项目
记录一下两个用java swing写的客户端. 项目1: 关键词:swing jtable 代码如下: 1.主类: package com.my.agent.client; import java. ...
- java 8 新特性之Stream的排序/分类
Stream简介 Stream是Java8提供的一个新的API,它位于java.util.stream包下.Stream API提供了一种新的方式来对Java集合进行操作,这种操作方式极大的提高了Ja ...
- MySQL+Service+Servlet+Jsp实现Table表格分页展示数据
下面以一个示例讲解如何使用MySQL+Service+Servlet+Jsp实现Table表格分页展示数据: eg:请假管理系统 要求如下: 一.打开首页页面, 访问查询请假记录的 servlet , ...
- Java Swing窗体小工具实例 - 原创
Java Swing窗体小工具实例 1.本地webserice发布,代码如下: 1.1 JdkWebService.java package server; import java.net.InetA ...
- java swing 开发 -JTable
最近利用空闲时间自己琢磨了一下java swing 编程,其实在从事javaweb之前我一直向往的就是java swing 开发,不知道为什么可能当时觉得Windows上的exe程序很是神奇,关于wi ...
- Java swing实现酒店管理系统
今天给大家提供一个由今天给大家提供一个由Java swing实现的酒店管理系统,数据库采用sqlserver,我会贴上部分代码,完整的代码请看文章最下方下载,下面看代码: 1.主框架代码: packa ...
随机推荐
- 【HDFS API编程】删除文件
所有操作都是以fileSystem为入口进行,我们使用fileSystem下的delete方法进行删除文件操作,删除的时候必须慎重. 直接上代码: /** * 删除文件 * @throws Excep ...
- tornado架构分析3 options.py中基础类_Option
1 数据清洗 option里面最重要的方法就是parse,在这里,parse函数的一开始就调用了后面的子函数_parse_datetime,_parse_timedelta,_parse_bool,_ ...
- 中兴iptv机顶盒破解教程图文:亲测中兴B760EV3、B860A、B860AV1.1完美安装应用!非ttl破解![转]
一直以为中兴的这几个盒子只能通过ttl来破解,不过现在再也不用这么麻烦了,有了这个工具,前后破解不超3分钟!理论上支持所有中兴的iptv机顶盒的破解! 亲测中兴B760EV3.B860A.B860AV ...
- mysql 采样查询 / 间隔查询 / 跳跃查询的两种实现思路
先创建一张测试表 CREATE TABLE `test` ( `id` ) DEFAULT NULL, `) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET= ...
- xftp无法用root账号登录问题
编辑vim /etc/ssh/sshd_config文件 把PermitRootLogin Prohibit-password 添加#注释掉 新添加:PermitRootLogin yes 更改Per ...
- 爬虫之Splash
Splash 是一个JavaScript渲染服务,是一个带有HTTP API 的轻量级浏览器,同时它对接了Python中Twisted和QT库. 1.功能介绍 1)异步方法处理多个网页渲染过程: 2) ...
- TODO:BGP 建立过程
//TODO: Quagga 实时监控配置文件
- wkhtmltopdf 转pdf时元素被页面切割开
1. <style> * { page-break-inside: avoid; page-break-after: avoid; page-break-before: avoid; } ...
- 通过.ibd和.frm恢复mysql数据
背景:因为机器损坏,数据库的索引文件什么的都损坏了.只留下了一个mysql的data目录… 此方法恢复数据的前提:建表用的innodb索引 备注:如果mysql的目录还都在,可以先尝试,将mysq ...
- CodeWarrior 10 自定义关键字模版
==============================================版本信息开始============================================ 相关作 ...