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

(翻译)第十二回 JavaFX2.0 复选框CheckBox

 
阅读更多

 

原文地址http://download.oracle.com/javafx/2.0/ui_controls/checkbox.htm

 

CheckBox类让你可以在应用中创建复选框。尽管复选框看起来很想单选框 ,但是它们并不能被放置进一个开关组中来实现很多选项的选择。你可以复习一下前面关于Radio Button 和Toggle Button相关的内容。

Figure 6-1  是有三个复选框的一个应用,这些复选框用来控制工具栏中的图标是否显示。

Figure 6-1 Checkbox Sample

Checkbox sample
Description of "Figure 6-1 Checkbox Sample"

 

创建Checkbox

Example 6-1   creates two simple checkboxes.

//Example 6-1 Creating Checkboxes

//A checkbox without a caption 
CheckBox cb1 = new CheckBox(); 
//A checkbox with a string caption 
CheckBox cb2 = new CheckBox("Second"); 
cb1.setText("First"); 
cb1.setSelected(true); 

 

创建复选框后,就可以使用JavaFX API中的方法对它们进行设置。在Example 6-1 setText方法为 c1这个复选框定义了标题,设置setSelected方法为 true以使程序运行后 cb1是选中的。

定义状态

复选框能被定义为明确或不明确。被定义为明确后就可以被选中或取消选中,但是不明确的话就不能被选中或取消选中。结合使用CheckBox类的 setSelected  setIndeterminate方法来为复选框指定状态。 Table 6-1 是三个不同状态的复选框,它们的 INDETERMINATE  SELECTED属性不相同。

Table 6-1 States of a Checkbox

Property Values Checkbox Appearance

INDETERMINATE   = false

SELECTED   = false

The checkbox is deselected.

INDETERMINATE   =false

SELECTED   = true

The checkbox is selected.

INDETERMINATE   = true

SELECTED   = true/false

The checkbox is undefined.

当复选框要呈现多种状态的UI元素时要为它们指定三种状态,如"Yes", "No", "Not Applicable"。CheckBox 类的 allowIndeterminatePropety设置了复选框对象是否能在全部三种状态(选中、取消选中、不明确)中循环 。如果设置 ,这个控件就可以在三种状态中循环。否则 ,这控件只能在选中和取消选中两种状态中切换。下一部分的应用中构造了三个复选框,并且只有两个状态。

 

 

设置行为

Example 6-2 中的代码块创建了三个复选框,这样当一个复选框被选中后,相应的图标就显示出来。

//Example 6-2 Setting the Behavior for the Checkboxes

final String[] names = new String[]{"Security", "Project", "Chart"}; 
final Image[] images = new Image[names.length];
final ImageView[] icons = new ImageView[names.length];
final CheckBox[] cbs = new CheckBox[names.length]; 
for (int i = 0; i < names.length; i++) 
{ final Image image = images[i] = 
new Image(getClass().getResourceAsStream(names[i] + ".png")); 
final ImageView icon = icons[i] = new ImageView();
final CheckBox cb = cbs[i] = new CheckBox(names[i]); 
cb.selectedProperty().addListener
(new ChangeListener<Boolean>() {
 public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) 
{ icon.setImage(new_val ? image : null);
 } });
 } 

 

names这个数组使用了一个 for循环来创建复选框和相应的图标。比如说, cbs[0]是第一个复选框,被分配了"Security"这个标题;同时image[0]接收了"Security.png"作为getResourceStream方法的文件名。如果一个特定的复选框被选中后,相应的图片就被分配成它的图标。如果一个复选框被取消选中,图标接收 null图片所以没有图标分配。

Figure 6-2  是应用中的 Security 和Chart 复选框被选中,Project 取消选中。

Figure 6-2 Checkbox Application in Action

Two checkboxes are selected
Description of "Figure 6-2 Checkbox Application in Action"

 

 

美化Checkbox

Figure 6-2  中的复选框有CheckBox 默认的外观和感觉。可以通过使用 setStyle  方法来改变它的样子,见 Example 6-3 .

//Example 6-3 Styling a Checkbox

cb1.setStyle( "-fx-border-color: lightblue; "
 + "-fx-font-size: 20;"
 + "-fx-border-insets: -5; "
 + "-fx-border-radius: 5;"
 + "-fx-border-style: dotted;"
 + "-fx-border-width: 2;" ); 

 

新风格包括了一条浅蓝色点边框和一个扩大字体的标题。Figure 6-3  是使用了这种风格的 cb1复选框。

Figure 6-3 Styled Checkbox

Description of Figure 6-3 follows
Description of "Figure 6-3 Styled Checkbox"

要为应用中的所有复选框设置特定的风格,按照下面的步骤:

  • 创建一个 .css文件;

  • 在 .css文件中创建checkbox CSS 类。

  • checkbox   CSS 类中定义所有需要的风格。

  • 在你的JavaFX应用中,使用setStyleClass  方法来使用CSS文件。

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    JavaFX2.0 体系结构和框架

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

    javafx2.0 中文文档.zip

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

    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官方例子

    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内建控件教程(全部控件)

    - **Checkbox**:复选框,允许多选。 - **Choice Box**:下拉选择器,用于选择单个选项。 - **Text Field**:允许用户输入文本。 - **Password Field**:用于安全输入密码。 - **Scroll Bar** 和 **Scroll Pane**:...

    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_表格框TableView

    以下是关于JavaFX 2.0表格框TableView及其核心组件的详细解释: 1. **TableView类**: - `TableView`是主要的类,它代表一个可滚动的二维数据视图。通过它,你可以创建具有多列的表格,并在每一列中显示不同类型的...

    javafx2.0在netbeans插件

    JavaFX 2.0 是 Oracle 公司推出的一个强大的富客户端开发平台,它允许开发者创建具有丰富图形用户界面和交互性的应用程序。NetBeans IDE 是一个流行的开源集成开发环境(IDE),支持多种编程语言,包括 Java。`...

    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...

Global site tag (gtag.js) - Google Analytics