复选框初始化延迟Java FX 8

时间:2017-10-04 12:01:31

标签: java checkbox java-8 javafx-8 fxml

有人可以告诉我为什么Checkbox初始化我的代码会延迟吗?

如果我打开程序,我必须多次单击Checkbox,直到它执行所需的操作。

Controller还包含setter和getter方法。

非常感谢

public class Controller {

   /* Defined variables */

    @FXML
    private CheckBox happyboxtick;


    @FXML
    private VBox topbox;

    @FXML
    private VBox designbox;

     @FXML
    public void initialize(){

    happyboxtick.setSelected(true);

        designbox.setVisible(false);
        designbox.getChildren().removeAll();

        topbox.setVisible(true);
        topbox.getChildren().addAll();

    }


@FXML
    public void doSomething(ActionEvent e) {
        //final CheckBox chk1 = new CheckBox("chk 1");
        //final CheckBox chk2 = new CheckBox("chk 2");
        EventHandler eh = new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                if (event.getSource() instanceof CheckBox) {
                    CheckBox chk = (CheckBox) event.getSource();
                    //System.out.println("Action performed on checkbox " + chk.getText());
                    //System.out.println(chk);
                    if(chk.isSelected()){
                        System.out.println("My box is selected.");
                        topbox.setVisible(false);
                        topbox.getChildren().removeAll();

                        designbox.setVisible(true);
                        designbox.getChildren().addAll();
                    } else
                    {
                        System.out.println("My box is not selected.");
                        topbox.setVisible(true);
                        topbox.getChildren().addAll();

                        designbox.setVisible(false);
                        designbox.getChildren().removeAll();
                    }/*
                    if ("Yes".equals(chk.getText())) {
                        chk2.setSelected(!chk1.isSelected());
                    } else if ("chk 2".equals(chk.getText())) {
                        chk1.setSelected(!chk2.isSelected());
                    }*/
                }
            }
        };

        happyboxtick.setOnAction(eh);

        //chk1.setOnAction(eh);
        //chk2.setOnAction(eh);
    }
    }

守则汇编完美。 初始化工作。 选择了正确的选项。 但是当我单击该框时,我可能需要多次单击才能显示元素。而且我不知道为什么。

0 个答案:

没有答案