博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaFX “即时搜索” 示例
阅读量:5929 次
发布时间:2019-06-19

本文共 2173 字,大约阅读时间需要 7 分钟。

演示如何侦听文本框内容的变化

public class InstantSearchDemo extends Application {    private TextField textfield;    private ListView
listview; private List
words = Arrays.asList(("俄罗斯限制 VPN 和匿名代理工具的的法律于 11 月 1 日正式生效。" + "俄罗斯没有禁止 VPN 和代理工具,而是要求代理服务商限制用户访问被禁止的网站,也就是说翻墙之后还有一堵墙。VPN 供应商" + "将需要访问监管机构俄罗斯通讯监管局的被屏蔽网站黑名单。国家杜马信息政策委员会负责人 Leonid Levin 称,法律只是想要" + "屏蔽“非法内容”,无意对守法公民施加限制。今年 6 月,Google.ru 的一个网页包含了被屏蔽赌博网站的域名,作为惩罚,搜" + "索引擎被屏蔽了几个小时。俄罗斯的这项法律豁免了企业 VPN,但不清楚俄罗斯通讯监管局如何区分企业和公共 VPN。") .split("[\\s,。“”]")); private InstantSearch
instantSearch = new InstantSearch<>(words, String::contains); @Override public void start(Stage primaryStage) throws Exception { primaryStage.setScene(new Scene(root(), 400, 400)); primaryStage.show(); } private Parent root() { textfield = textfield(); listview = listView(); VBox vBox = new VBox(textfield, listview); vBox.setPadding(new Insets(20)); vBox.setSpacing(10); return vBox; } private TextField textfield() { TextField textField = new TextField(); textField.textProperty().addListener((observable, oldValue, newValue) -> { String trimed = newValue.trim(); if (trimed.length() > 0) { doSearch(trimed); } }); return textField; } private void doSearch(String keyword) { List
searchResult = instantSearch.search(keyword); listview.getItems().clear(); listview.getItems().addAll(searchResult); } private ListView
listView() { return new ListView<>(); } /// private class InstantSearch
{ private Collection
tCollection; private BiFunction
matcher; public InstantSearch(Collection
tCollection, BiFunction
matcher) { this.tCollection = tCollection; this.matcher = matcher; } public List
search(String keyword) { return (tCollection == null || matcher == null) ? Collections.emptyList() : tCollection.stream() .filter(t -> matcher.apply(t, keyword)) .collect(Collectors.toList()); } }}

效果:

图片描述

转载地址:http://voevx.baihongyu.com/

你可能感兴趣的文章
二叉树的实现(C#)
查看>>
PrincetonAlgorithm I - Assignment2 Deques and Randomized Queues
查看>>
系统日子打印记录
查看>>
【矩阵乘法】OpenJ_POJ - C17F - A Simple Math Problem
查看>>
[旧博客]Python 第一次
查看>>
Verify the Developer App certificate for your account is trusted on your device.
查看>>
神经网络- receptive field
查看>>
java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
查看>>
centos7.0搭建svn服务器
查看>>
JS多个对象添加到一个对象中
查看>>
九度 1376 最近零子序列
查看>>
yii---where or该如何使用
查看>>
非彼拉且数列的实现
查看>>
高性能缓存服务器Squid架构配置
查看>>
在Hyper-V下安装Windows 8
查看>>
Android:ZoomControls控件
查看>>
Unlicensed ARC session – terminating!
查看>>
jquery学习之重要知识点
查看>>
xshell 通过ssh连接 ubuntu15_x64
查看>>
mysql 2013错误解决
查看>>