我有一个Button,我想在每个Action-Event中添加一个onActionProperty,我想做一些东西。
如何将其添加到按钮?
我的例子:
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区域中获取该区域中的每个事件。我希望你能帮助我。
答案 0 :(得分:1)
如果您想采取行动,请选择并取消选择切换按钮,尝试:
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 :(得分:0)
您正在寻找的是
m_popupSwitch.setOnAction(new EventHandler<ActionEvent>()
{
@Override public void handle(ActionEvent e)
{
System.out.println("OUTPUT");
}
});
答案 2 :(得分:0)
您没有向按钮添加侦听器,您注册设置了一个EventHandler,按下该按钮时会调用其handle方法。像这样:
m_popupSwitch.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("OUTPUT ");
}
});