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实现展示数据,以及过滤排序的更多相关文章

  1. [Java] 读写字节数据,过滤流DataOutputStream和DataInputStream

    package test.stream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io ...

  2. Flex与Java交互(Flex调用java类展示数据)解析xml展示数据

    Flex与java通信最简单例子(详细说明了各种需要注意的配置):http://blog.csdn.net/u010011052/article/details/9116869 Flex与java通信 ...

  3. 「福利」Java Swing 编写的可视化算法工程,包含树、图和排序

    之前在整理<学习排序算法,结合这个方法太容易理解了>这篇文章时,发现了一个用 Java Swing 编写的可视化算法工程,真心不错!包含了常用数据结构和算法的动态演示,先来张图感受下: 可 ...

  4. Java Swing客户端小项目

    记录一下两个用java swing写的客户端. 项目1: 关键词:swing  jtable 代码如下: 1.主类: package com.my.agent.client; import java. ...

  5. java 8 新特性之Stream的排序/分类

    Stream简介 Stream是Java8提供的一个新的API,它位于java.util.stream包下.Stream API提供了一种新的方式来对Java集合进行操作,这种操作方式极大的提高了Ja ...

  6. MySQL+Service+Servlet+Jsp实现Table表格分页展示数据

    下面以一个示例讲解如何使用MySQL+Service+Servlet+Jsp实现Table表格分页展示数据: eg:请假管理系统 要求如下: 一.打开首页页面, 访问查询请假记录的 servlet , ...

  7. Java Swing窗体小工具实例 - 原创

    Java Swing窗体小工具实例 1.本地webserice发布,代码如下: 1.1 JdkWebService.java package server; import java.net.InetA ...

  8. java swing 开发 -JTable

    最近利用空闲时间自己琢磨了一下java swing 编程,其实在从事javaweb之前我一直向往的就是java swing 开发,不知道为什么可能当时觉得Windows上的exe程序很是神奇,关于wi ...

  9. Java swing实现酒店管理系统

    今天给大家提供一个由今天给大家提供一个由Java swing实现的酒店管理系统,数据库采用sqlserver,我会贴上部分代码,完整的代码请看文章最下方下载,下面看代码: 1.主框架代码: packa ...

随机推荐

  1. Android 开发 倒计时功能 转载

    原文地址:https://www.cnblogs.com/xch-yang/p/7920419.html Android为我们封装好了一个抽象类CountDownTimer,可以实现计时器功能: /* ...

  2. python3 摘抄

    https://www.python.org/downloads/release/python-370/ python3.7.0 win10环境,选:Windows x86-64可执行安装程序. ht ...

  3. python爬取免费优质IP归属地查询接口

    python爬取免费优质IP归属地查询接口 具体不表,我今天要做的工作就是: 需要将数据库中大量ip查询出起归属地 刚开始感觉好简单啊,毕竟只需要从百度找个免费接口然后来个python脚本跑一晚上就o ...

  4. python configparse模块&xml模块

    configparse模块 用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser. [DEFAULT] serveraliveinterval = ...

  5. JS时间戳转时间

    function timestampToTime(timestamp) { S = timestamp, T = new Date(1E3 * S), Format = function(Q){ret ...

  6. python2操作MySQL

    #coding=utf-8   import MySQLdb   conn = MySQLdb.connect(host='localhost',user='root',passwd='123456' ...

  7. django用户权限操作

    第一步:创建数据库和超级管理员,为了比较方便使用(里面有些的是没用的),额外新增 chioces , per_method , argument_list # 用户权限# 建立一个权限表,将映射关系存 ...

  8. Cookie在前端读不到 多半是因为Cookie在服务器端的设置是HttpOnly 意味着只能在后台操作Cookie

    比如Shiro框架的 RememberMe Cookie 是不允许Js进行读写的 只能在服务器端通过同一个域的请求获得 import com.constantine.forum.exception.F ...

  9. Linux查看与挂载新磁盘

    问题 把CentOS都换成了Ubuntu Server(16.04 LTS),用df -h查看磁盘占用情况,确发现之前插入的一块大容量磁盘/dev/sdb1消失了.是磁盘坏了?还是没被系统识别? 解决 ...

  10. The Ultimate Productivity Hack is Saying No

    The Ultimate Productivity Hack is Saying No By James ClearRead this on JamesClear.com The ultimate p ...