JavaFX将按钮绑定到彼此

时间:2015-01-29 19:21:28

标签: java oop javafx eventhandler

不确定我的标题问题是否正确。

我想要实现的是让一个按钮创建一个Vehicle对象。然后有一个不同的按钮调用方法embark(这将只更新一些字段)。

总的来说:

创建对象Vehicle实例的一个按钮。 第二个按钮,用于调用此实例上的方法。

        btnCar.setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent event){
            Vehicle C = new Car(amountPass, "hej", "hej");
        }
    });
    btnEmbark.setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent event){
            ferry.embark(C);
        }
    });

谢谢!

1 个答案:

答案 0 :(得分:2)

有几种方法,我想到的第一种方法是使用JavaFX属性:

ObjectProperty<Object> object = new SimpleObjectProperty<>();

Button button1 = new Button("create");
button1.setOnAction(ev -> object.set(new Object()));

Button button2 = new Button("magic");
button2.setOnAction(ev -> object.get().hashCode());
button2.disableProperty().bind(Bindings.isNull(object));

使用Bindings,我们确保只有在创建和存储自定义对象时才能触发第二个按钮。

另一种方法是编写Button的子类与另一个Button进行通信。这是个人品味的问题。

相关问题