本文中将会讲述CheckBox的使用。
CheckBox通常跟RadioButton看起来很相似,不过加入同一个ToggleGroup的CheckBox允许多个选中,这是与RadioButton最大的区别。
创建CheckBox
//创建一个无文本的CheckBox
CheckBox cb1 = new CheckBox();
//创建一个带有文本的CheckBox
CheckBox cb2 = new CheckBox("Second");
cb1.setText("First");
cb1.setSelected(true);
通过setText来设置文本,setSelected来设置当前选中的状态。
定义状态
CheckBox通常情况下,有选中或者不选中状态。但也有一种中立的状态,既非选中,也非没选中。通过setSelected和setIndeterminate方法结合使用。
如下图所示:
监听事件
如果我们需要监听CheckBox选中等的事件,同样需要监听Property,如下:
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(
(ObservableValue<? extends Boolean> ov,
Boolean old_val, Boolean new_val) -> {
icon.setImage(new_val ? image : null);
});
}
主要实现的是多个CheckBox,通过选中来显示相应的ImageView中的图片。
运行效果如下:
总的来说,也是个非常简单的控件。
文章评论