admin 管理员组

文章数量: 887017


2024年3月2日发(作者:headfirst设计模式视频)

0

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

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

0Figure 6-1 Checkbox Sample

Description of "Figure 6-1 Checkbox Sample"

0

创建CheckboxJava代码

0

0Example 6-1 creates two simple checkboxes.0

1.

2.

3.

4.

5.

6.

7.

8.

//Example 6-1 Creating Checkboxes

//A checkbox without a caption

CheckBox cb1 = new CheckBox();

00

0//A checkbox with a string caption

0CheckBox cb2 = new CheckBox("Second");

t("First");

00

ected(true);

0

创建复选框后,就可以使用JavaFX API中的方法对它们进行设置。在Example 6-1 中

setText方法为 c1这个复选框定义了标题,设置setSelected方法为

true以使程序运行后 cb1是选中的。0

0定义状态

复选框能被定义为明确或不明确。被定义为明确后就可以被选中或取消选中,但是不明确的话就不能被选中或取消选中。结合使用CheckBox类的

setSelected 和setIndeterminate方法来为复选框指定状态。 Table

6-1 是三个不同状态的复选框,它们的

INDETERMINATE 和SELECTED属性不相同。Table 6-1 States of a CheckboxProperty Values

00

Checkbox Appearance

INDETERMINATE = false

Property Values Checkbox Appearance

SELECTED = false

INDETERMINATE =false

SELECTED = true

INDETERMINATE = true

SELECTED = true/false

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

设置行为0

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

Java代码

01.

2.

3.

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

0

final String[] names = new String[]{"Security", "Project", "Chart"};

0

04.

5.

6.

7.

8.

9.

final Image[] images = new Image[];

final ImageView[] icons = new ImageView[];

final CheckBox[] cbs = new CheckBox[];

for (int i = 0; i < ; i++)

{ final Image image = images[i] =

00

0

0

0new Image(getClass().getResourceAsStream(names[i] + ".png"));

010.

11.

12.

13.

14.

final ImageView icon = icons[i] = new ImageView();

final CheckBox cb = cbs[i] = new CheckBox(names[i]);

edProperty().addListener

(new ChangeListener() {

00

0

public void changed(ObservableValue ov, Boolean old_val, Boolean new_val)

0

015.

16.

17.

{ ge(new_val ? image : null);

} });

}

0

0

names这个数组使用了一个

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

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

Description of "Figure 6-2 Checkbox Application in Action"

0

美化Checkbox0

Figure 6-2 中的复选框有CheckBox 类 默认的外观和感觉。可以通过使用

setStyle 方法来改变它的样子,见Example 6-3 .Java代码

0

0

1.

2.

3.

4.

5.

6.

7.

8.

//Example 6-3 Styling a Checkbox

le( "-fx-border-color: lightblue; "

+ "-fx-font-size: 20;"

0

0

+ "-fx-border-insets: -5; "

+ "-fx-border-radius: 5;"

00

+ "-fx-border-style: dotted;"

+ "-fx-border-width: 2;" );

00

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

0Figure 6-3 Styled Checkbox

Description of "Figure 6-3 Styled Checkbox"

0

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

创建一个 .css文件;0

在 .css文件中创建

checkbox CSS 类。0在checkbox CSS 类中定义所有需要的风格。0在你的JavaFX应用中,使用setStyleClass 方法来使用CSS文件。0


本文标签: 复选框 选中 取消 图标 方法