关于JavaFX拓展控件库ControlsFx的AutoCompletionBinding的使用
来源:互联网 发布:java培训机构排名2016 编辑:程序博客网 时间:2024/06/06 20:29
首先是API文档 controlsfx官方
然后,选择 HomePage
这里有两个版本,部分控件在两个版本存在新的功能方法。如AutoCompletionBinding抽象类,在8.4版本支持对动态下拉匹配框显示的个数可控,而之前版本则不支持这个方法。
setVisibleRowCount(int value)//用于显示下拉匹配的行数
附上示例代码:
public class TestAutoBing extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("测试用");
//测试带有自动清除按钮的TextField
// primaryStage.setScene(testClearableTextField());
//测试动态匹配下拉列表
primaryStage.setScene(testAutoCompletionBingdingTextField());
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
public Scene testClearableTextField(){
//带清除按钮的文本框
TextField textClearable= TextFields.createClearableTextField();
StackPane root = new StackPane();
root.getChildren().add(textClearable);
Scene scene = new Scene(root,300,300);
return scene;
}
public Scene testAutoCompletionBingdingTextField(){
List list = new ArrayList();
list.add("123456");
list.add("123567");
list.add("123678");
list.add("456123");
list.add("456234");
list.add("456345");
list.add("789456");
list.add("788567");
list.add("123444");
list.add("123445");
list.add("123555");
list.add("123556");
list.add("123666");
list.add("123667");
list.add("123677");
list.add("456777");
list.add("456788");
list.add("456888");
list.add("456889");
list.add("456999");
list.add("789444");
list.add("789455");
list.add("789466");
list.add("789566");
list.add("123745");
list.add("123756");
list.add("123765");
list.add("123764");
list.add("123546");
list.add("456213");
list.add("456231");
list.add("123879");
list.add("123897");
list.add("123978");
list.add("123987");
TextField textField = new TextField();
AutoCompletionBinding textAutoBingding = TextFields.bindAutoCompletion(textField, FXCollections.observableArrayList(list));
textAutoBingding.setVisibleRowCount(3);
StackPane root = new StackPane();
root.getChildren().add(textField);
Scene scene = new Scene(root,300,800);
return scene;
}
}
执行结果如下:@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("测试用");
//测试带有自动清除按钮的TextField
// primaryStage.setScene(testClearableTextField());
//测试动态匹配下拉列表
primaryStage.setScene(testAutoCompletionBingdingTextField());
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
public Scene testClearableTextField(){
//带清除按钮的文本框
TextField textClearable= TextFields.createClearableTextField();
StackPane root = new StackPane();
root.getChildren().add(textClearable);
Scene scene = new Scene(root,300,300);
return scene;
}
public Scene testAutoCompletionBingdingTextField(){
List list = new ArrayList();
list.add("123456");
list.add("123567");
list.add("123678");
list.add("456123");
list.add("456234");
list.add("456345");
list.add("789456");
list.add("788567");
list.add("123444");
list.add("123445");
list.add("123555");
list.add("123556");
list.add("123666");
list.add("123667");
list.add("123677");
list.add("456777");
list.add("456788");
list.add("456888");
list.add("456889");
list.add("456999");
list.add("789444");
list.add("789455");
list.add("789466");
list.add("789566");
list.add("123745");
list.add("123756");
list.add("123765");
list.add("123764");
list.add("123546");
list.add("456213");
list.add("456231");
list.add("123879");
list.add("123897");
list.add("123978");
list.add("123987");
TextField textField = new TextField();
AutoCompletionBinding textAutoBingding = TextFields.bindAutoCompletion(textField, FXCollections.observableArrayList(list));
textAutoBingding.setVisibleRowCount(3);
StackPane root = new StackPane();
root.getChildren().add(textField);
Scene scene = new Scene(root,300,800);
return scene;
}
}
功能要求:点击按钮删除动态匹配的下拉元素public class TestAutoBing extends Application{ AutoCompletionBinding textAutoBingding =null; @Override public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("测试用"); //测试带有自动清除按钮的TextField// primaryStage.setScene(testClearableTextField()); //测试动态匹配下拉列表 primaryStage.setScene(testAutoCompletionBingdingTextField()); primaryStage.show(); } public static void main(String[] args) { launch(args); } public Scene testClearableTextField(){ //带清除按钮的文本框 TextField textClearable= TextFields.createClearableTextField(); StackPane root = new StackPane(); root.getChildren().add(textClearable); Scene scene = new Scene(root,300,300); return scene; } public Scene testAutoCompletionBingdingTextField(){ List list = new ArrayList(); list.add("aaaa"); list.add("aabb"); list.add("abcc"); TextField textField = new TextField(); ObservableList lsitObservable = FXCollections.observableArrayList(list); textAutoBingding = TextFields.bindAutoCompletion(textField, lsitObservable); textAutoBingding.setVisibleRowCount(3); VBox root = new VBox(); root.getChildren().add(textField); Button btnRemove = new Button("删除"); btnRemove.setOnAction(new EventHandler() { public void handle(ActionEvent event) { //下面3行实现动态改变绑定下拉匹配列表 lsitObservable.remove(textField.getText());//删除文本框中选中元素 textAutoBingding.dispose();//解除绑定关系 //重新绑定关系,因为ObservableList lsitObservable是动态集合,元素随操作即时变化。 textAutoBingding=TextFields.bindAutoCompletion(textField,lsitObservable); System.out.println("执行删除"); }; }); root.getChildren().add(btnRemove); Scene scene = new Scene(root,300,300); return scene; }}
首先执行删除"aaaa",然后再次清空输入,发下下拉匹配列表中 "aaaa",已经不存在了;若全部删除则匹配列表为空。
0 0
- 关于JavaFX拓展控件库ControlsFx的AutoCompletionBinding的使用
- JavaFX的扩展控件库ControlsFX介绍
- JavaFX的扩展控件库ControlsFX介绍
- JavaFX 的 UI 控件集 ControlsFX
- JavaFx控件org.controlsfx.control.CheckComboBox缺陷说明
- JavaFX的:入门使用JavaFX
- JavaFX 的 Label 控件
- JavaFX 的 Button 控件
- 拓展控件 - 拓展的TextView
- 关于JAVAFX定时更新ui界面上的控件内容
- JavaFX的ResourceBundle使用
- javaFX 的入门使用
- JavaFX - 使用UI控件
- JavaFX之Pagination的使用
- JavaFX之Task的使用
- JavaFX之TableView的使用
- JavaFX之ListView的使用
- JavaFX之ListView的使用
- Mono使用C#执行shell脚本(Linux)
- 概念定义
- Android开发之Context的使用
- java 裁剪图片 参数 宽 高 自动按照比例来剪切
- 单例模式多线程下可行的方案
- 关于JavaFX拓展控件库ControlsFx的AutoCompletionBinding的使用
- 网络流(最小割最大流(记录路径))【POJ1815】
- ARM寄存器一览
- fragment和radiobutton做出类tabhost效果
- C语言实现栈(基于链表)
- 思绪整理
- opencv 3.0安装时提示ippicv 安装的MD5不匹配问题
- ubuntu系统安装nginx
- Java中有关Char的学习笔记