资源简介
实现对文本框的匹配,比如已存在的匹配集合包含:“abc”、"aa"、"bb"
输入a时就会匹配到"abc"和"aa"
代码片段和文件信息
package autocomplete;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Point2D;
import javafx.scene.Scene;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseEvent;
import javafx.stage.Popup;
import javafx.stage.Window;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
/**
* 自定提示控件
*
* 根据输入的内容和提示列表来匹配提示信息
*
*
*
*/
public class AutoCompleteTextField
{
private TextField textField;
private final static int LIST_MAX_SIZE = 6;
private final static int LIST_CELL_HEIGHT = 24;
/** pinyin4j 工具类 用来匹配输入内容 */
private HanyuPinyinOutputFormat pinyinFormat = new HanyuPinyinOutputFormat();
/** 用来存储显示 出来的信息列表 */
private ObservableList showCacheDataList = FXCollections. observableArrayList();
/** 用来存储缓存的信息列表 重写indexOf方法来获取匹配到的数据 */
private List cacheDataList = new ArrayList()
{
private static final long serialVersionUID = 281687373227150590L;
@Override
public int indexOf(object searchContext)
{
showCacheDataList.clear();
if(null == searchContext || searchContext.toString().equals(““)) {
return -1;
}
int size = cacheDataList.size();
for (int i = 0; i < size; i++)
{
char[] charArry = cacheDataList.get(i).toCharArray();
StringBuilder sbPinyin = new StringBuilder();
String indexPinyin = new String();
for (char ch : charArry)
{
// 将搜索内容转换为拼音 方便搜索
try
{
String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(ch pinyinFormat);
sbPinyin.append(null != pinyin ? pinyin[0] : ch);
if(null != pinyin) {
indexPinyin = indexPinyin + pinyin[0].charAt(0);
}
} catch (BadHanyuPinyinOutputFormatCombination e)
{
sbPinyin.append(ch);
}
}
if (cacheDataList.get(i).contains(searchContext.toString())|| sbPinyin.toString().contains(searchContext.toString()) || indexPinyin.contains(searchContext.toString()))
{
showCacheDataList.add(cacheDataList.get(i));
}
}
return -1;
};
};
/** 监听输入框的内容 */
private SimpleStringProperty inputContent = new SimpleStringProperty();
/** 输入内容后显示的pop */
private Popup popSh
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 491 2014-09-30 14:15 AutoComplete\.classpath
文件 388 2014-09-30 13:52 AutoComplete\.project
文件 230 2014-09-30 13:58 AutoComplete\.settings\org.eclipse.core.resources.prefs
文件 598 2014-09-30 13:52 AutoComplete\.settings\org.eclipse.jdt.core.prefs
文件 2996 2014-09-30 14:19 AutoComplete\bin\autocomplete\AutoCompleteTextField$1.class
文件 1375 2014-09-30 14:19 AutoComplete\bin\autocomplete\AutoCompleteTextField$2.class
文件 1470 2014-09-30 14:19 AutoComplete\bin\autocomplete\AutoCompleteTextField$3.class
文件 1001 2014-09-30 14:19 AutoComplete\bin\autocomplete\AutoCompleteTextField$4.class
文件 1166 2014-09-30 14:19 AutoComplete\bin\autocomplete\AutoCompleteTextField$5.class
文件 7272 2014-09-30 14:19 AutoComplete\bin\autocomplete\AutoCompleteTextField.class
文件 1087 2014-09-30 14:15 AutoComplete\bin\autocomplete\AutoCompleteTextFieldBuilder.class
文件 1165 2014-09-30 14:22 AutoComplete\bin\autocomplete\demo\AutoCompleteTextFieldDemo$1.class
文件 2147 2014-09-30 14:22 AutoComplete\bin\autocomplete\demo\AutoCompleteTextFieldDemo.class
文件 184856 2014-09-30 14:14 AutoComplete\lib\jfxgraph-asm-ext-1.0.0-RELEASE.jar
文件 15106233 2014-09-30 13:53 AutoComplete\lib\jfxrt.jar
文件 209862 2014-09-30 13:53 AutoComplete\lib\pinyin4j-2.5.0.jar
文件 7308 2014-09-30 14:19 AutoComplete\src\autocomplete\AutoCompleteTextField.java
文件 624 2014-09-30 13:59 AutoComplete\src\autocomplete\AutoCompleteTextFieldBuilder.java
文件 1571 2014-09-30 14:22 AutoComplete\src\autocomplete\demo\AutoCompleteTextFieldDemo.java
相关资源
- mysql数据处理,java用户登录处理
- 法律咨询信息系统(java+jsp+sqlserver)
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- javaweb网上购物系统源码(附数据库脚
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
- 基于SSH框架的JavaWeb项目—人员信息管
- javaweb实现的邮件收发系统(附数据库
- Java 仿QQ(附客户端以及服务端源码)
- Java TCP IP Socket
- java定时发送邮件(基于quartz)
- Java Swing开发的《星际争霸》游戏
- java+数据库商品交易管理系统(附数据
- 使用java语言编译一个计算器
- java swing工资管理系统(源码+数据库
- JAVALibrary
- 微信企业号回调模式Java版
- 顺丰丰桥接口开发详细教程源码含下
- Java博客概要设计文档
- 药品进销存管理系统(论文范文_JSP
- 奖学金管理系统java+jsp+mysql
- 毕设参考——基于java酒店管理
- Java写的一个简单的字体更改程序
- java8学习教程之lambda表达式的使用方法
评论
共有 条评论