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 ...
随机推荐
- excel 拷贝数据到 plsql 报 is not a valid date and time
按以下格式设置时间格式
- ie8兼容性总结
DOCTYPE 首先需要确保你的HTML页面开始部分要有DOCTYPE声明.DOCTYPE告诉浏览器使用什么样的HTML或XHTML规范来解析HTML文档,具体会影响: 对标记.attributes ...
- socket学习
对应的代码: 服务端: import socket phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #买手机 phone.bind(( ...
- centos7安装svn
摘抄自http://blog.csdn.net/junehappylove/article/details/65963025 1.安装 sudo yum install subversion 查看安装 ...
- Url的拦截问题
如果 在中没有, 就会去找欢迎页,先找/index,jsp,在webapp里并没有,就继续往下找/index.html, 是图中的拦截形式,就会被servlet拦截,对应于controller中的请求 ...
- Delphi中Chrome Chromium、Cef3学习笔记(四)
原文 http://blog.csdn.net/xtfnpgy/article/details/48155323 一.遍历网页元素并点击JS: 下面代码为找到淘宝宝贝页面,成交记录元素的代码: ...
- [Docker] 容器持久化数据的首选机制 Volume
Volume 是 docker 容器生成持久化数据的首选机制.bind mounts 依赖主机机器的目录机构,volume 完全由 docker 管理.volume 较 bind mounts 有几个 ...
- python3基础-set
集合:无序的,不重复的数据组合 作用: 1.去重,把一个列表变成集合,就自动去重了 2.关系测试,测试两组数据之前的交集.差集.并集等关系 set和dict类似,也是一组key的集合,但不存储valu ...
- sql优化之concat/concat_ws/group_concat
原文1:https://baijiahao.baidu.com/s?id=1595349117525189591&wfr=spider&for=pc 原文2:https://www.y ...
- Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)
在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...