动作属性上的按钮->添加更改侦听器

卢卡斯·耶罗尼莫斯·阿德勒(Lukas Hieronimus Adler)

我有一个Button,我想在其中添加一个onActionProperty,在每个Action-Event中,我都想做一些事情。

如何将其添加到按钮?

我的例子:

m_popupSwitch.onActionProperty().addListener(new ChangeListener<EventHandler<ActionEvent>>()
        {
            @Override
            public void changed(ObservableValue<? extends EventHandler<ActionEvent>> arg0, EventHandler<ActionEvent> arg1, EventHandler<ActionEvent> arg2)
            {
                System.out.println("OUTPUT ");
            }
        });

我可以像在示例中一样添加它,但是它不起作用,所以我该如何修复我的代码,以便每次在onActionProperty更改时都得到一个事件...

主要-问题是,我有一个ToggleButton,它是ToggleGroup的组。现在,我想在该Action属性上获取该区域中的每个事件。我希望你能帮助我。

詹斯·彼得·哈克

如果要采取行动,请选择并取消选择切换按钮,请尝试:

    ToggleButton first = new ToggleButton("A");
    ToggleButton second = new ToggleButton("B");
    ToggleGroup group = new ToggleGroup();
    first.setToggleGroup(group);
    second.setToggleGroup(group);
    second.selectedProperty().addListener((p, ov, nv) -> {
        System.out.println("Changed");
    });

可以使用以下方式显示列表器的区别:

    ToggleButton first = new ToggleButton("A");
    ToggleButton second = new ToggleButton("B");
    ToggleGroup group = new ToggleGroup();
    first.setToggleGroup(group);
    second.setToggleGroup(group);
    second.selectedProperty().addListener((p, o, n) -> {
        System.out.println("Changed "+p.getValue());
    });
    second.setOnAction(a -> {
        System.out.println("Action");
    });
    second.onActionProperty().addListener((p, o, n) ->{
        System.out.println("OnAction");

    });

单击B(第二个)将在哪里打印:

  Changed true
  Action

然后点击A(第一)进行打印:

  Changed false

所以:

  1. 如果有人单击此按钮,则将调用onAction()侦听器(setOnAction)
  2. 如果切换状态“已选择”更改,则也会调用selectedProperty()侦听器,也可以通过单击此切换组的另一个按钮来取消选择它
  3. 仅当有人使用setOnAction()方法删除或添加了新的侦听器时,才调用onActionProperty()侦听器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章