JavaFX UI控件教程(六)之Toggle Button
翻译自 Toggle Button
在本章中,您将了解ToggleButton
该类,这是通过JavaFX API提供的另一种类型的按钮。
可以将两个或多个切换按钮组合成一个组,其中一次只能选择一个按钮,或者不需要选择。图5-1是组合了三个切换按钮的应用程序的截屏。应用程序根据选择的切换按钮绘制具有特定颜色的矩形。
创建切换按钮
您可以使用ToggleButton
该类的三个构造函数中的任何一个在应用程序中创建一个切换按钮,如例5-1所示。
//A toggle button without any caption or icon
ToggleButton tb1 = new ToggleButton();
//A toggle button with a text caption
ToggleButton tb2 = new ToggleButton("Press me");
//A toggle button with a text caption and an icon
Image image = new Image(getClass().getResourceAsStream("icon.png"));
ToggleButton tb3 = new ToggleButton ("Press me", new ImageView(image));
在代码中定义了切换按钮后,可以将它们组合在一个组中并设置特定的行为。
将切换按钮添加到组
在实施ToggleButton
类是非常相似的实现RadioButton
类。但是,与单选按钮不同,切换组中的切换按钮不会尝试强制选择组中的至少一个按钮。也就是说,单击所选的切换按钮会使其取消选中,单击组中所选的单选按钮无效。
花点时间研究代码片段例5-2。
final ToggleGroup group = new ToggleGroup();ToggleButton tb1 = new ToggleButton("Minor");
tb1.setToggleGroup(group);
tb1.setSelected(true);ToggleButton tb2 = new ToggleButton("Major");
tb2.setToggleGroup(group);ToggleButton tb3 = new ToggleButton("Critical");
tb3.setToggleGroup(group);
通常,您使用一组切换按钮为每个按钮指定特定行为。下一节将介绍如何使用这些切换按钮来更改矩形的颜色。
设置行为
该类从类setUserData
继承的方法可帮助您将任何选定的选项与特定值相关联。在示例5-3中,用户数据指示应使用哪种颜色来绘制矩形。ToggleButton
Node
tb1.setUserData(Color.LIGHTGREEN);
tb2.setUserData(Color.LIGHTBLUE);
tb3.setUserData(Color.SALMON);final Rectangle rect = new Rectangle(145, 50);final ToggleGroup group = new ToggleGroup();
group.selectedToggleProperty().addListener(new ChangeListener<Toggle>(){public void changed(ObservableValue<? extends Toggle> ov,Toggle toggle, Toggle new_toggle) {if (new_toggle == null)rect.setFill(Color.WHITE);elserect.setFill((Color) group.getSelectedToggle().getUserData());}
});
例如,如果用户选择tb2切换按钮,则setSelectedToggle().getUserData()
呼叫返回Color.LIGHTBLUE
。结果如图5-3所示。
请参阅ToggleButtonSample.java文件以检查应用程序的完整代码。
造型切换按钮
您可以通过将CSS样式应用于切换按钮来增强此应用程序。在JavaFX 2应用程序中使用CSS类似于在HTML中使用CSS,因为每种情况都基于相同的CSS规范。示例5-4使用该setStyle
方法更改-fx-base
切换按钮的CSS属性。
tb1.setStyle("-fx-base: lightgreen;");
tb2.setStyle("-fx-base: lightblue;");
tb3.setStyle("-fx-base: salmon;");
当添加到应用程序代码中时,这些行会更改切换按钮的可视外观,如图5-4所示。
您可能希望尝试ToggleButton
该类的其他CSS属性,或应用JavaFX API中提供的动画,转换和视觉效果。
ToggleButton
ToggleGroup
JavaFX UI控件教程(六)之Toggle Button相关推荐
- 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控件教程(十六)之Separator
翻译自 Separator 本章介绍如何使用分隔符组织JavaFX应用程序的UI组件. SeparatorJavaFX API中可用的类表示水平或垂直分隔线.它用于划分应用程序用户界面的元素,不会产 ...
- JavaFX UI控件教程(二十八)之UI控件的自定义
翻译自 Customization of UI Controls 本章介绍了UI控件自定义的各个方面,并总结了Oracle提供的一些提示和技巧,以帮助您修改UI控件的外观和行为. 您可以通过应用层叠 ...
- JavaFX UI控件教程(二十三)之Menu
翻译自 Menu 本章介绍如何创建菜单和菜单栏,添加菜单项,将菜单分组,创建子菜单以及设置上下文菜单. 您可以使用以下JavaFX API类在JavaFX应用程序中构建菜单. 菜单栏 菜单项 菜单 ...
- JavaFX UI控件教程(二十二)之Titled Pane和Accordion
翻译自 Titled Pane and Accordion 本章介绍如何在JavaFX应用程序中使用accordion和title窗格的组合. 标题窗格是带标题的面板.它可以打开和关闭,它可以封装任 ...
- JavaFX UI控件教程(二十一)之Tooltip
翻译自 Tooltip 在本章中,您将了解工具提示,即当鼠标光标悬停该控件时,可以为任何UI控件设置的控件. 的Tooltip类表示通常用于显示关于所述用户接口的控制附加信息的公共UI组件.可以通过 ...
- JavaFX UI控件教程(二十)之HTML Editor
翻译自 HTML Editor 在本章中,您将学习如何使用嵌入式HTML编辑器编辑JavaFX应用程序中的文本. 该HTMLEditor控件是一个功能齐全的富文本编辑器.它的实现基于HTML5的文档 ...
- JavaFX UI控件教程(十八)之Progress Bar和Progress Indicator
翻译自 Progress Bar and Progress Indicator 在本章中,您将了解进度指示器和进度条,以及可视化JavaFX应用程序中任何操作进度的UI控件. 本ProgressIn ...
最新文章
- 网易MySQL中间件的负载均衡策略及性能优化
- ASP.NET中App_Code,App_Data等文件夹的作用转
- 2019知道c语言答案,2019年全国计算机二级C语言练习及答案四
- slider节点透明背景_【Cocos Creator 实战教程(1)】——人机对战五子棋(节点事件相关)...
- 确定活动的热点垃圾收集器
- 信贷常用风控报表(二)
- shell 备份并删除几日内的历史文件
- 【.net core 跨平台】第一步 在Ubuntu16.04 配置.net core环境
- 用QT制作一个抽奖器的总结
- LabVIEW与Microsoft Windows的兼容性
- Qt6 tesseract-ocr 截图识字
- IP摄像头实现远程目标检测(rtsp)
- Genero Studio导入ds.sch失败处理办法_Error importing schema file:Check Ouput view for datails. mod-db3[11003]
- 来给罗永浩和王自如打个分
- 查找计算机硬件和软件的翻译工具,计算机软件和硬件,PC computer software and hardware,音标,读音,翻译,英文例句,英语词典...
- 了解Wi-fi频段概念
- 做seo必须要懂得的技术:黑帽seo和白帽seo的几点
- SSO单点登录跨域跨服务器
- PP模块工艺路线明细BAPI
- Python文本处理工具——TextRank
热门文章
- c语言sizeof和strlen哪个大,C语言的sizeof和strlen区别与联系
- mysql already closed._java.sql.SQLException: Already closed.
- [EDA]FPGA/CPLD 设计流程步骤及步骤概念
- sqrt()函数的注意事项
- C++中函数调用时的三种参数传递方式(x,*x,x)
- matlab中图像轮廓变细,Matlab中,用bwmorph函数提取二进制图像的轮廓
- 最大公约数,最小公倍数,质因式分解
- Function!(计蒜客 - 42386)
- P3714 [BJOI2017]树的难题(点分治/线段树/单调队列)
- CF1208D Restore Permutation