栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java JTable-仅显示与字符串匹配的行

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

Java JTable-仅显示与字符串匹配的行

您要

documentListener
与行过滤器一起使用。您可以看到如何编写documentListener。

基本上,侦听器侦听文本字段的基础文档中的更改。从您在中重写的方法中

documentListener
,您可以像当前所做的那样获取文本,并像您当前所做的那样设置regex
ex过滤器

这是一个简单的示例(忽略applet。我只是从这篇文章中获得了样板代码,并添加了文档侦听器)。注意:同一篇文章提供了答案,如果您正在寻找该功能,则可以使用不区分大小写的方式进行过滤

import javax.swing.JApplet;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.RowFilter;import javax.swing.event.documentEvent;import javax.swing.event.documentListener;import javax.swing.table.TableModel;import javax.swing.table.TableRowSorter;public class TestTableSorterFilter extends JApplet {    private String[] columnNames = {"Country", "Capital", "Population in Millions", "Democracy"};    private Object[][] data = {        {"USA", "Washington DC", 280, true},        {"Canada", "Ottawa", 32, true},        {"United Kingdom", "London", 60, true},        {"Germany", "Berlin", 83, true},        {"France", "Paris", 60, true},        {"Norway", "Oslo", 4.5, true},        {"India", "New Delhi", 1046, true}    };    private JTable jTable = new JTable(data, columnNames);    private TableRowSorter<TableModel> rowSorter = new TableRowSorter<>(jTable.getModel());    private JTextField jtfFilter = new JTextField();    private JButton jbtFilter = new JButton("Filter");    public TestTableSorterFilter() {        jTable.setRowSorter(rowSorter);        JPanel panel = new JPanel(new BorderLayout());        panel.add(new JLabel("Specify a word to match:"),     BorderLayout.WEST);        panel.add(jtfFilter, BorderLayout.CENTER);        add(panel, BorderLayout.SOUTH);        add(new JScrollPane(jTable), BorderLayout.CENTER);        jtfFilter.getdocument().adddocumentListener(new documentListener(){ @Override public void changedUpdate(documentEvent arg0) {} @Override public void insertUpdate(documentEvent arg0) {     String text = jtfFilter.getText();     if (text.trim().length() == 0) {         rowSorter.setRowFilter(null);     } else {         rowSorter.setRowFilter(RowFilter.regexFilter(text));     }    } @Override public void removeUpdate(documentEvent arg0) {     String text = jtfFilter.getText();     if (text.trim().length() == 0) {         rowSorter.setRowFilter(null);     } else {         rowSorter.setRowFilter(RowFilter.regexFilter(text));     }    }        });    }}


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

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

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