`
somefuture
  • 浏览: 1089765 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

(翻译)第十回 JavaFX2.0单选框Radio Button

 
阅读更多

原文地址http://download.oracle.com/javafx/2.0/ui_controls/radio-button.htm#BABBJBDA

 

RadioButton类是ToggleButton类的一个专业实现。一个单选按钮控件可以被选中和取消选中。典型的单选按钮是被放置在一个组里面,组里每次只能有一个按钮被选中。这种行为将它们和开关按钮区别开了,因为一个组中的所有开关按钮能同时被取消选中。

Figure 4-1是三幅RadioButton例子的截图,里面的三个单选按钮在同一个组中。

Figure 4-1 RadioButton Sample

A group of three radio buttons
Description of "Figure 4-1 RadioButton Sample"

通过研习下文能够了解更多关于在应用中实现单选按钮的信息。

 

 

创建Radio Button

RadioButton类位于JavaFX SDK的javafx.scene.control包中,提供了两个创建单选按钮的构造方法。Example 4-1是创建两个单选按钮。无参数构造方法用来创建rb1,它的标题通过setText方法设置。而rb2的标题直接定义在相应的构造方法中。

 Example 4-1 Creating Radio Buttons

//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方法来指定一副图片。Example 4-2演示了如何在应用中实现带图像的单选按钮。

Example 4-2 Creating a Graphical Radio Button

Image image = new Image(getClass().getResourceAsStream("ok.jpg")); 
RadioButton rb = new RadioButton("Agree"); 
rb.setGraphic(new ImageView(image)); 

 

 

将Radio Button加入到组

单选按钮的典型用法是在组中使用来提供几个互斥选项。ToggleGroup对象为所有的单选按钮提供了引用来关联自身,并且管理单选按钮来实现每次只能有一个被选中。Example 4-3创建了一个开关按钮组、三个单选按钮,把每个按钮都加入到组中,并指定了在程序启动后哪个要被选中。

Example 4-3 Creating a Group of Radio Buttons

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); 

 

 

当这些单选按钮被它们的布局管理器添加到应用的内容上以后,输出应该类似于Figure 4-2.

Figure 4-2 Three Radio Buttons Combined in a Group

Three radio buttons: Home, Calendar, Contacts
Description of "Figure 4-2 Three Radio Buttons Combined in a Group"

 

处理Radio Button事件

当组中的某个单选按钮被选中时程序会处理该行为。研读Example 4-4中的代码块来了解怎么根据哪个单选按钮被选中来改变图标。

 

Example 4-4 Processing Action for Radio Buttons

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); } } }); 

 

 

 

比如,当rb3被选中时,getSelectedToggle方法返回"rb3,"getUserData方法返回"Contacts"。因此,getResourceAsStream方法接收了"Contacts.jpg."Figure 4-1是应用的输出。

 

为Radio Button请求焦点

在单选按钮组中,默认第一个按钮具有焦点。当你为组中的第二个单选按钮使用setSelected 方法后,你期望的结果是像Figure 4-3.

Figure 4-3 Default Focus Settings

The second radio button is selected.
Description of "Figure 4-3 Default Focus Settings"

第二个按钮被选中了,但焦点依然在第一个按钮上。使用requestFocus函数可以改变焦点位置,见Example 4-5.

Example 4-5 Requesting Focus for the Second Radio Button

rb2.setSelected(true); rb2.requestFocus();

这样,代码产生的结果如Figure 4-4.

Figure 4-4 Setting Focus for the Selected Radio Button

The second radio button gets focused.
Description of "Figure 4-4 Setting Focus for the Selected Radio Button"

 

 

 

 

0
0
分享到:
评论

相关推荐

    JavaFX2.0 体系结构和框架

    【JavaFX2.0 体系结构和框架】深入解析 JavaFX2.0 是一个基于Java技术的丰富客户端平台,专为开发富互联网应用程序(RIAs)设计,它以其出色的动态画面和美观的用户界面而受到赞誉。尽管中文资料相对较少,但通过对...

    javaFX高级教程JavaFX2.0的FXML语言 中文文档

    ### JavaFX 2.0 的 FXML 语言高级教程 #### 概述 JavaFX 2.0 引入了一种新的声明性标记语言——FXML(发音为 “fizz-le”),这是一种基于 XML 的语言,专门用于定义应用程序的用户界面。通过使用 FXML,开发者...

    JavaFX高级教程:JavaFX2.0的FXML语言(中文版)

    JavaFX 2.0 是一个强大的富互联网应用程序(RIA)平台,用于构建具有美观图形界面的应用程序。在JavaFX 2.0中,FXML(FXML Language)被引入,这是一种基于XML的声明性语言,专门用于定义应用程序的用户界面。这个...

    javafx2.0 中文文档.zip

    这个“javafx2.0 中文文档.zip”压缩包包含了关于JavaFX 2.0的中文文档,对于理解和学习这个技术至关重要。 首先,JavaFX 2.0的核心是它的 scenegraph 模型,这是一种基于节点的对象模型,用于构建复杂的用户界面。...

    JavaFX2.0内建控件教程(全部控件)

    ### JavaFX 2.0 内建控件教程 #### 1. UI控件概览 JavaFX 2.0 提供了一系列丰富的内置用户界面(UI)控件,这些控件可以帮助开发者快速构建美观且功能强大的应用程序。JavaFX UI 控件位于 `javafx.scene.control` ...

    javafx2.0官方例子

    javafx2.0,java,javafx,例子,代码 Sun公司(已于20092008年12月05日发布了JavaFX技术的正式版,它使您能利用 JavaFX 编程语 言开发富互联网应用程序(RIA)。JavaFX Script编程语言(以下称为JavaFX)是Sun微...

    JavaFX 2.0 電子書 - Pro JavaFX 2

    最新JavaFx 2.0 電子書 In Pro JavaFX 2: A Definitive Guide to Rich Clients with Java Technology, Jim Weaver, Weiqi Gao, Stephen Chin, Dean Iverson, and Johan Vos show you how you can use the JavaFX ...

    JavaFx2.0入门指南

    JavaFX 2.0 入门指南是针对那些希望通过JavaFX快速开发富用户体验应用程序的开发者设计的。这个指南,源自Oracle官方,包含了中英文对照,旨在帮助初学者快速上手。在本文档中,你将学习如何利用JavaFX创建一个名为...

    JavaFX 2.0 Introduction by Example.zip

    JavaFX 2.0 Introduction by Example.zip是javafx2.0的最新书籍《[JavaFX.2.0:Introduction.by.Example].Carl.Dea》上的源码!大家可以下载本书和源码一起看!我都上传了!

    javafx2.0在netbeans插件

    10. **社区和资源**:使用 NetBeans 和 JavaFX 2.0 开发的开发者可以受益于活跃的开发者社区,获取示例代码、教程、论坛支持和更新。 综上所述,`javafx-2_0-beta-netbeans-windows-i586.zip` 文件是为 NetBeans ...

    JavaFX2.0基础教程.pdf

    ### JavaFX2.0基础教程知识点总结 #### 1. JavaFX概览 - **JavaFX认知**:JavaFX是一个由Java技术构建的平台,它旨在简化富互联网应用程序(RIA)的创建与部署过程,这些应用程序能够跨多个平台运行并且具有统一的...

    Javafx 2.0: Introduction by Example

    Javafx 2.0: Introduction by Example

    JavaFX2.0基础教程(整合版)

    JavaFX2.0平台是java客户端设计演进,使应用开发者易于创建和部署跨平台且表现一致的Rich Internet Application(RIAs)。JavafX是由Java技术构建,基于高性能硬件加速的媒体和图形引擎,JavaFX平台提供了一套丰富的...

    javafx_2.0_introduction_by_example

    根据给定文件的信息,我们可以提炼出关于JavaFX 2.0的重要知识点,这些知识点涵盖了JavaFX的基本概念、架构策略、发展历程以及其在图形用户界面(GUI)开发中的应用。 ### JavaFX 2.0:下一代GUI工具包 JavaFX 2.0...

    JavaFX2.0IntroductionbyExamplePDFBooks.pdf 英文原版

    JavaFX 2.0 Introduction by Example – PDF Books

Global site tag (gtag.js) - Google Analytics