首页 >> 知识 >> JavaFX UI控件教程(七)之Checkbox

JavaFX UI控件教程(七)之Checkbox

翻译自   Checkbox

本章教授如何向JavaFX应用程序添加复选框。

虽然复选框看起来类似于单选按钮,但它们不能组合到切换组中以便一次选择多个选项。有关详细信息,请参阅单选按钮和切换按钮章节。

图6-1显示了一个应用程序的屏幕截图,其中三个复选框用于启用或禁用应用程序工具栏中的图标。

图6-1复选框示例

 

创建复选框

例6-1创建了两个简单的复选框。

示例6-1创建复选框

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

创建复选框后,可以使用JavaFX API提供的方法对其进行修改。在示例6-1中,该setText方法定义了c1复选框的文本标题。该setSelected方法设置为true在启动应用程序时选择cb1复选框。

定义一个国家

复选框可以是已定义的,也可以是未定义的。定义后,您可以选择或取消选择它。但是,如果未定义复选框,则无法选择或取消选中该复选框。使用类的setSelected和setIndeterminate方法的组合CheckBox来指定复选框的状态。表6-1显示了基于其属性INDETERMINATE和复选框的复选框的三种状态SELECTED。

表6-1复选框的状态

属性值复选框外观

INDETERMINATE = false

SELECTED = false

INDETERMINATE =false

SELECTED = true

INDETERMINATE = true

SELECTED = true/false

当应用程序中的复选框表示可处于混合状态的UI元素时,您可能需要为应用程序中的复选框启用三种状态,例如“是”,“否”,“不适用”。对象的allowIndeterminate属性CheckBox确定复选框是否应循环通过所有三种状态:selected,deselected和undefined。如果变量是true,则控件将循环通过所有三个状态。如果是false,控件将循环选择和取消选择状态。下一节中描述的应用程序构造了三个复选框,并且只为它们启用两个状态。

 

设置行为

示例6-2中的代码片段创建了三个复选框,这样,如果选中了复选框,则相应的图标将显示在工具栏中。

示例6-2设置复选框的行为

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() { public void changed(Observablevalsue
网站地图