JavaFX UI控件教程(九)之Text Field
翻译自 Text Field
本章讨论文本字段控件的功能。
的TextField
类实现接受并显示文本输入的UI控制。它提供了从用户接收文本输入的功能。与另一个文本输入控件一起,PasswordField
此类扩展了TextInput
类,它是通过JavaFX API提供的所有文本控件的超类。
图8-1显示了带有标签的典型文本字段。
创建文本字段
在示例8-1中,文本字段与标签结合使用,以指示应在字段中键入的内容的类型。
Label label1 = new Label("Name:");
TextField textField = new TextField ();
HBox hb = new HBox();
hb.getChildren().addAll(label1, textField);
hb.setSpacing(10);
您可以应用类的setPrefColumnCount
方法TextInput
来设置文本字段的大小,定义为一次可以显示的最大字符数。
使用文本字段构建UI
通常,TextField
对象在表单中用于创建多个文本字段。图8-2中的应用程序显示三个文本字段,并处理用户在其中输入的数据。
例8-2中的代码片段创建了三个文本字段和两个按钮,并使用GridPane
容器将它们添加到应用程序的场景中。当您需要为UI控件实现灵活的布局时,此容器特别方便。
//Creating a GridPane container
GridPane grid = new GridPane();
grid.setPadding(new Insets(10, 10, 10, 10));
grid.setVgap(5);
grid.setHgap(5);
//Defining the Name text field
final TextField name = new TextField();
name.setPromptText("Enter your first name.");
name.setPrefColumnCount(10);
name.getText();
GridPane.setConstraints(name, 0, 0);
grid.getChildren().add(name);
//Defining the Last Name text field
final TextField lastName = new TextField();
lastName.setPromptText("Enter your last name.");
GridPane.setConstraints(lastName, 0, 1);
grid.getChildren().add(lastName);
//Defining the Comment text field
final TextField comment = new TextField();
comment.setPrefColumnCount(15);
comment.setPromptText("Enter your comment.");
GridPane.setConstraints(comment, 0, 2);
grid.getChildren().add(comment);
//Defining the Submit button
Button submit = new Button("Submit");
GridPane.setConstraints(submit, 1, 0);
grid.getChildren().add(submit);
//Defining the Clear button
Button clear = new Button("Clear");
GridPane.setConstraints(clear, 1, 1);
grid.getChildren().add(clear);
提示文本与文本字段中输入的文本之间的区别在于无法通过该getText
方法获取提示文本。
在实际应用程序中,输入到文本字段的数据将根据特定业务任务所需的应用程序逻辑进行处理。下一节将介绍如何使用文本字段评估输入的数据并生成对用户的响应。
处理文本字段数据
如前所述,用户输入文本字段的文本数据可以通过类的getText
方法获得TextInput
。
学习例8-3,学习如何处理TextField
对象的数据。
//Adding a Label
final Label label = new Label();
GridPane.setConstraints(label, 0, 3);
GridPane.setColumnSpan(label, 2);
grid.getChildren().add(label);//Setting an action for the Submit button
submit.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent e) {if ((comment.getText() != null && !comment.getText().isEmpty())) {label.setText(name.getText() + " " + lastName.getText() + ", "+ "thank you for your comment!");} else {label.setText("You have not left a comment.");}}});//Setting an action for the Clear button
clear.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent e) {name.clear();lastName.clear();comment.clear();label.setText(null);}
});
copy()
- 将文本中当前选定的范围传输到剪贴板,保留当前选择。cut()
- 将文本中当前选定的范围传输到剪贴板,删除当前选择。paste()
- 将剪贴板中的内容传输到此文本中,替换当前选择。
相关的API文档
TextField
TextInputControl
JavaFX UI控件教程(九)之Text Field相关推荐
- JavaFX UI控件教程(二)之JavaFX UI控件
翻译自 JavaFX UI控件 本章概述了通过API提供的JavaFX UI控件. JavaFX UI控件是使用场景图中的节点构建的.因此,控件可以使用JavaFX平台的视觉丰富功能.由于JavaF ...
- JavaFX UI控件教程(一)之简述
翻译自 JavaFX UI控件概述 关于本教程 本教程介绍JavaFX API中提供的内置JavaFX UI控件. 该文件包含以下章节: JavaFX UI控件 标签 按钮 单选按钮 切换按钮 复选 ...
- JavaFX UI控件教程(八)之Choice Box
翻译自 Choice Box 本章介绍了选项框,这些UI控件提供了在几个选项之间快速选择的支持. 使用ChoiceBox该类将选择框添加到JavaFX应用程序.其简单的实现如图7-1所示. 图7- ...
- JavaFX UI控件教程(二十八)之UI控件的自定义
翻译自 Customization of UI Controls 本章介绍了UI控件自定义的各个方面,并总结了Oracle提供的一些提示和技巧,以帮助您修改UI控件的外观和行为. 您可以通过应用层叠 ...
- JavaFX UI控件教程(二十三)之Menu
翻译自 Menu 本章介绍如何创建菜单和菜单栏,添加菜单项,将菜单分组,创建子菜单以及设置上下文菜单. 您可以使用以下JavaFX API类在JavaFX应用程序中构建菜单. 菜单栏 菜单项 菜单 ...
- JavaFX UI控件教程(二十一)之Tooltip
翻译自 Tooltip 在本章中,您将了解工具提示,即当鼠标光标悬停该控件时,可以为任何UI控件设置的控件. 的Tooltip类表示通常用于显示关于所述用户接口的控制附加信息的公共UI组件.可以通过 ...
- JavaFX UI控件教程(二十)之HTML Editor
翻译自 HTML Editor 在本章中,您将学习如何使用嵌入式HTML编辑器编辑JavaFX应用程序中的文本. 该HTMLEditor控件是一个功能齐全的富文本编辑器.它的实现基于HTML5的文档 ...
- JavaFX UI控件教程(十六)之Separator
翻译自 Separator 本章介绍如何使用分隔符组织JavaFX应用程序的UI组件. SeparatorJavaFX API中可用的类表示水平或垂直分隔线.它用于划分应用程序用户界面的元素,不会产 ...
- JavaFX UI控件教程(十五)之Combo Box
翻译自 Combo Box 本章介绍如何在JavaFX应用程序中使用组合框.它讨论了可编辑和不可编辑的组合框,教您如何跟踪可编辑组合框中的更改并处理它们上的事件,并解释如何使用单元工厂来更改组合框 ...
最新文章
- 平衡二叉树-FHQ Treap(无旋平衡树)c/c++代码实现
- 一文应用 AOP | 最全选型考量 + 边剖析经典开源库边实践,美滋滋
- oracle 实现HA,oracle RAC的客户端HA配置
- jQuery 效果函数(三)
- 多线程:当你提交任务时,线程队列已经满了,这时会发生什么?
- bzoj2005: [Noi2010]能量采集
- 软概(lesson 2):课堂测试
- C/C++ BugPitfalls
- linux 踢出在线用户
- python爬虫中文乱码_Python 爬虫过程中的中文乱码问题
- linux 文件类型 时间戳 ls bash特性四 文件查看命令 cp move echo
- python网站上搜索答案_用python搭建百万赢家自动搜索答案
- 28个超有用的PPT小技巧,快来收藏
- “小而美”走到十字路口,吉利或收购魅族助车机闭环
- 华大移植SEGGER_RTT 打印
- bootstrap 下拉列表获取_Bootstrap框架下下拉菜单的实现(代码示例)
- 如何让excel在两个窗口分开显示
- VMVare 打不开磁盘xxx.vmdk
- DEV gridview数据筛选
- AHB-SRAM简单设计之架构图解
热门文章
- 10-5 5-5 查询只卖三种不同型号PC的厂商 (20 分)
- 7-40 奥运排行榜 (25 分)(详解+思路+map+vector做法)兄弟们冲压呀呀呀呀呀呀呀
- C++函数模板机制结论
- 《C++ Primer》2.6.1节练习
- hdu4911 Inversion-归并排序
- java编码给出二维数组List<List<Integer>>matrix,输出每列最小的值
- Go unsafe Pointer
- 玉柴spn码故障对照表_后处理的故障不总是尿素泵故障,也有可能是这些原因
- android webview framework,android – Webview导致ANR
- extern __shared__