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

通过JTextField值对JTable行进行过滤

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

通过JTextField值对JTable行进行过滤

您正在呼叫

RowFilter.regexFilter(filterTF.getText(), 0);
UserPage_Admin()

构造。它应该如何从filterTF中读取 文本 。我认为您应该从分配给的Action Event
Listener调用它
JButton
,提交(单击)文本时将调用它,如下所示:

submitButton.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, 0));        }      }    });

如果要使用“根据用户键类型进行过滤”事件,请将键侦听器添加到您要输入过滤字符串的文本字段中。

filterTxtFeild.addKeyListener(new KeyAdapter() { public void keykeyReleased(KeyEvent evt) {   // on each key type event filter.   // put your filter pre as submit button }        });

但是,正如下面的注释所建议的那样,要使用Swing Text Component,应使用

document.adddocumentListener(documentListener)


。Swing文本组件使用文档来表示其内容。文档内容以任何方式更改时,都会发生文档事件。如下添加文档侦听器:

filterTxtFeild.getdocument().adddocumentListener(new documentListener() {      @Override      public void insertUpdate(documentEvent e) {        // put your filter pre here upon data insertion      }      @Override      public void removeUpdate(documentEvent e)       {  //put your filter pre here upon data removal      }      @Override      public void changedUpdate(documentEvent e) {}    });

编辑:为什么最好用documentListener?

如果我们要验证数据源中的输入,

KeyEvent
在过滤数据时使用,您会发现它不能反映用户的击键,并且输入事件在由数据源处理之前先发送给侦听器。假设当我们要
username
输入时,某人输入了类似的文本
"$%^&"
。对于此类无效输入,
KeyEvent
即使未对数据源进行任何有效更改,仍将被触发。但是,
documentListeners
仅在对数据源进行了有效更改时才收到通知。数据输入组件会产生一个事件,其中一个
validator
可以监听
asynchronously
,一个人绝对不能从一个组件内修改文本组件的内容
documentListener
。如果这样做,程序可能会死锁。



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

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

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