JavaFX UI控件教程(五)之Radio Button
翻译自 Radio Button
本章讨论单选按钮控件和RadioButton
类,该类的一个专门实现ToggleButton
。
可以选择或取消选择单选按钮控件。通常,单选按钮组合成一个组,其中一次只能选择一个按钮。此行为将它们与切换按钮区分开来,因为组中的所有切换按钮都可以处于取消选择状态。
图4-1显示了RadioButton
样本的三个屏幕截图,其中三个单选按钮添加到一个组中。
请阅读以下段落,以了解有关如何在应用程序中实现单选按钮的更多信息。
创建单选按钮
JavaFX SDK包中提供的RadioButton
类提供javafx.scene.control
了两个构造函数,您可以使用它们创建单选按钮。例4-1显示了两个单选按钮。没有参数的构造函数用于创建rb1。此单选按钮的文本标题是使用该setText
方法设置的。rb2的文本标题在相应的构造函数中定义。
//A radio button with an empty string for its label
RadioButton rb1 = new RadioButton();
//Setting a text label
rb1.setText("Home");
//A radio button with the specified label
RadioButton rb2 = new RadioButton("Calendar");
您可以使用该setSelected
方法显式选择一个单选按钮,并将其值指定为true
。如果需要检查用户是否选择了特定的单选按钮,请应用该isSelected
方法。
由于RadioButton
该类是类的扩展,因此Labeled
您不仅可以指定文本标题,还可以指定图像。使用该setGraphic
方法指定图像。示例4-2演示了如何在应用程序中实现图形单选按钮。
Image image = new Image(getClass().getResourceAsStream("ok.jpg"));
RadioButton rb = new RadioButton("Agree");
rb.setGraphic(new ImageView(image));
向组添加单选按钮
单选按钮通常用于组中以呈现多个互斥选项。该ToggleGroup
对象提供对与其关联的所有单选按钮的引用并对其进行管理,以便一次只能选择一个单选按钮。例4-3创建一个切换组,创建三个单选按钮,将每个单选按钮添加到切换组,并指定应用程序启动时应选择哪个按钮。
final ToggleGroup group = new ToggleGroup();RadioButton rb1 = new RadioButton("Home");
rb1.setToggleGroup(group);
rb1.setSelected(true);RadioButton rb2 = new RadioButton("Calendar");
rb2.setToggleGroup(group);RadioButton rb3 = new RadioButton("Contacts");
rb3.setToggleGroup(group);
当使用布局容器布置这些单选按钮并将其添加到应用程序的内容时,输出应类似于图4-2。
处理单选按钮的事件
通常,应用程序在选择组中的某个单选按钮时执行操作。查看示例4-4中的代码片段,了解如何根据选择的单选按钮更改图标。
ImageView image = new ImageView();rb1.setUserData("Home")
rb2.setUserData("Calendar");
rb3.setUserData("Contacts");final ToggleGroup group = new ToggleGroup();
group.selectedToggleProperty().addListener(new ChangeListener<Toggle>(){public void changed(ObservableValue<? extends Toggle> ov,Toggle old_toggle, Toggle new_toggle) {if (group.getSelectedToggle() != null) {final Image image = new Image(getClass().getResourceAsStream(group.getSelectedToggle().getUserData().toString() + ".jpg"));icon.setImage(image);} }
});
请求聚焦单选按钮
在单选按钮组中,默认情况下第一个按钮最初具有焦点。如果将该setSelected
方法应用于组中的第二个单选按钮,则应该会得到如图4-3所示的结果。
选择第二个单选按钮,第一个按钮保持对焦。使用该requestFocus
功能更改焦点,如例4-5所示。
rb2.setSelected(true);
rb2.requestFocus();
RadioButton
Labeled
ToggleGroup
JavaFX UI控件教程(五)之Radio Button相关推荐
- JavaFX UI控件教程(八)之Choice Box
翻译自 Choice Box 本章介绍了选项框,这些UI控件提供了在几个选项之间快速选择的支持. 使用ChoiceBox该类将选择框添加到JavaFX应用程序.其简单的实现如图7-1所示. 图7- ...
- 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控件教程(十五)之Combo Box
翻译自 Combo Box 本章介绍如何在JavaFX应用程序中使用组合框.它讨论了可编辑和不可编辑的组合框,教您如何跟踪可编辑组合框中的更改并处理它们上的事件,并解释如何使用单元工厂来更改组合框 ...
- JavaFX UI控件教程(二十八)之UI控件的自定义
翻译自 Customization of UI Controls 本章介绍了UI控件自定义的各个方面,并总结了Oracle提供的一些提示和技巧,以帮助您修改UI控件的外观和行为. 您可以通过应用层叠 ...
- JavaFX UI控件教程(十四)之Tree View
翻译自 Tree View 在本章中,您将学习如何在JavaFX应用程序中构建树结构,向树视图添加项,处理事件以及通过实现和应用单元工厂来自定义树单元. 包的TreeView类javafx.sce ...
- JavaFX UI控件教程(二十二)之Titled Pane和Accordion
翻译自 Titled Pane and Accordion 本章介绍如何在JavaFX应用程序中使用accordion和title窗格的组合. 标题窗格是带标题的面板.它可以打开和关闭,它可以封装任 ...
- JavaFX UI控件教程(二十三)之Menu
翻译自 Menu 本章介绍如何创建菜单和菜单栏,添加菜单项,将菜单分组,创建子菜单以及设置上下文菜单. 您可以使用以下JavaFX API类在JavaFX应用程序中构建菜单. 菜单栏 菜单项 菜单 ...
- JavaFX UI控件教程(二十一)之Tooltip
翻译自 Tooltip 在本章中,您将了解工具提示,即当鼠标光标悬停该控件时,可以为任何UI控件设置的控件. 的Tooltip类表示通常用于显示关于所述用户接口的控制附加信息的公共UI组件.可以通过 ...
- JavaFX UI控件教程(二十)之HTML Editor
翻译自 HTML Editor 在本章中,您将学习如何使用嵌入式HTML编辑器编辑JavaFX应用程序中的文本. 该HTMLEditor控件是一个功能齐全的富文本编辑器.它的实现基于HTML5的文档 ...
最新文章
- 九、springboot整合rabbitMQ
- Kubernetes容器编排的三大支柱
- 从字符串中删除HTML标签
- 清华大学 现代软件工程 结对编程项目 (一)
- 分布式架构高可用架构篇_04_Keepalived+Nginx实现高可用Web负载均衡
- 如何用TXT文档数据批量生成条形码
- 一次tomcat数据乱码事件
- OpenCV图像处理(2)——形态学操作
- 算法竞赛入门经典 排列
- 【MIKE21】批处理依次打开模型文件运行模型
- 抠图二重奏——人物头像
- 3DGIS第一章 绪 论
- 由计算机病毒引起的问题属于,多数情况下由计算机病毒程序引起的问题属于()故障。A.硬件B.软件C.操作D.电源...
- AAAI2020论文列表(中英对照)
- 计算机应用专业需要6g显卡吗,4G、6G、8G显卡的显存容量有什么用?来看科普
- tkinter可视化天气查询
- Nirvana NA公链 NAC公链的两面观
- 时间戳转日期格式 +new Date
- Github中Octotastic day的含义
- Alientek I.MX6UL Linux-第九章 I.MX6U的启动方式