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 ...
随机推荐
- 【Appium自学】Android studio安装与配置(转)
转自链接:https://www.cnblogs.com/xiadewang/p/7820377.html 1.首先下载Android studio安装包. 可以从http://www.android ...
- Mui中常见问题记录
1.mui中A标签如果有这个class="mui-control-item"时,a标签点击链接是没有反应的,那么可以用以下方式实现 : mui.init(); mui('body' ...
- zk hdfs hadoop yarn hive 学习笔记
如图
- scala 随笔
创建map,并向map添加元素 val idMap = Map( "group_id" -> "GID", "sim_id" -> ...
- 在虚拟机上的ubuntu 1.6 系统中sudo apt-get失败的问题
在虚拟机上sudo apt-get update 失败.可能是网络dns问题,把nameserver \设为你路由器的内网ip地址就没事了; 详细: 1/打开sudo gedit /etc/resol ...
- Gitlab使用Webhook实现Push代码后的jenkins自动构建
本文出自https://www.cnblogs.com/kevingrace/p/6479813.html 怕以后找不到,所以先写到自己博客中 Gitlab利用Webhook实现Push代码后的jen ...
- springboot 开启事务以及手动提交事务
添加依赖,sprongboot 会默认开启事务管理 org.springframework.boot spring-boot-starter-jdbc 在需要的服务类里添加注解 @Autowired ...
- JS,ATM代码
rs =require("readline-sync"); let island = false; let name1 = "1"; let mima1 = & ...
- MySQL编码不一致导致查询结果为空
升级数据库后(5.1到8.0),发现一个奇怪的问题,某些页面在升级前可以正常查询,但升级后什么也查不出来了,有时候还会查出错误的结果.经过一整天的排查,终于发现由两个原因导致,现记录如下. 第一是数据 ...
- ESP8266 软件实现 Delta-sigma(ΔΣ)调制器 并通过I2S接口输出编码流
一.关于Delta-sigma(ΔΣ)调制器 Delta-sigma(ΔΣ)调制器是Delta-sigma转换器的核心部件.如下所示为一个简单的一阶Delta-sigma调制器,该调制器产生一个1bi ...