当前位置:   article > 正文

javafX初探(多选框)_javafx多选框

javafx多选框

本节我们介绍多选框的应用。多选按钮和单选按钮很相似,但是它不能被整合进一个开关按钮中。具体请看单选按钮和开关按钮的信息。本节我们创建一个如下图的应用:

创建多选框

  1. //A checkbox without a caption
  2. CheckBox cb1 = new CheckBox();
  3. //A checkbox with a string caption
  4. CheckBox cb2 = new CheckBox("Second");
  5. cb1.setText("First");
  6. cb1.setSelected(true);


 

一旦我们创建了一个多选框,那么我们可以利用javaFx API提供的方法来修改这个文本框,setText方法来设置内容,使用setSelected来设置选中状态。

定义状态

多选框可以是定义和非定义的。如果是已定义的,那么多选框可以选中也可以不选中。但是当他是非定义的话,多选框不可以选中,也不可以不选中,我们可以使用setSelectedsetIndeterminate方法来设置多选框的选中状态的定义状态。如下图所示:

我们可以使用allowIndeterminate属性来让多选框有三种状态,如果是true,那么多选框就可以是非定义的,如果是false那么多选框只有选中和非选中两种状态。

设置行为:

  1. package com.chu.button;
  2. import javafx.application.Application;
  3. import javafx.geometry.Pos;
  4. import javafx.scene.Scene;
  5. import javafx.scene.control.CheckBox;
  6. import javafx.scene.image.Image;
  7. import javafx.scene.image.ImageView;
  8. import javafx.scene.layout.FlowPane;
  9. import javafx.scene.layout.GridPane;
  10. import javafx.stage.Stage;
  11. /**
  12. *
  13. * @author chuer
  14. * @Description: TODO(用一句话描述该文件做什么)
  15. * @date 2015年2月3日 下午3:14:41
  16. * @version V1.0
  17. */
  18. public class CheckboxTest extends Application {
  19. @Override
  20. public void start(Stage primaryStage) throws Exception {
  21. GridPane gp = new GridPane();
  22. gp.setAlignment(Pos.CENTER);
  23. gp.setHgap(10);
  24. gp.setVgap(10);
  25. final String[] names = new String[] { "Security", "Project", "Chart" };
  26. final Image[] images = new Image[names.length];
  27. final ImageView[] icons = new ImageView[names.length];
  28. final CheckBox[] cbs = new CheckBox[names.length];
  29. for (int i = 0; i < names.length; i++) {
  30. final Image image = images[i] = new Image(getClass().getResourceAsStream(names[i] + ".png"));
  31. final ImageView icon = icons[i] = new ImageView();
  32. final CheckBox cb = cbs[i] = new CheckBox(names[i]);
  33. cb.setAllowIndeterminate(true);
  34. cb.selectedProperty().addListener((ov, old_val, new_val) -> {
  35. icon.setImage(new_val ? image : null);
  36. });
  37. gp.add(cb, 0, i);
  38. }
  39. FlowPane flowPane = new FlowPane();
  40. for (ImageView iv : icons) {
  41. flowPane.getChildren().add(iv);
  42. }
  43. gp.add(flowPane, 1, 0,1,3);
  44. Scene scene = new Scene(gp, 500, 300);
  45. primaryStage.setScene(scene);
  46. primaryStage.show();
  47. }
  48. public static void main(String[] args) {
  49. launch(args);
  50. }
  51. }


 

运行代码如下图所示:

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号