7

fxml ファイルの onAction メソッドにパラメータを渡す方法はありますか? あるいは、どうにかして onAction メソッドを呼び出したコンポーネントの fx:id を取得できますか?

私は同じことを行うべきいくつかのボタンを持っています.ids button1 - button5 を持つ5つのボタンは、押されたときに対応する番号1-5を出力する必要があります。この変数まで同一の 5 つの onAction メソッドを使用したくありません。

どんな助けでも感謝します、

4

1 に答える 1

11

ハンドラーを 1 つだけ呼び出します。actionEvent.source は、イベントを発生させたオブジェクトです。

これを試して:

myButton1.setOnAction(new MyButtonHandler());
myButton2.setOnAction(new MyButtonHandler());

private class MyButtonHandler implements EventHandler<ActionEvent>{
    @Override
    public void handle(ActionEvent evt) {
        if (evt.getSource().equals(myButton1)) {
          //do something
        } else if (evt.getSource().equals(myButton2)) {
          //do something
        }
    }
}

または:

myButton1.addEventHandler(ActionEvent.ACTION, new MyButtonHandler());
myButton2.addEventHandler(MouseEvent.CLICKED, new MyButtonHandler());

private class MyButtonHandler implements EventHandler<Event>{
    @Override
    public void handle(Event evt) {
        if (evt.getSource().equals(myButton1)) {
          //do something
        } else if (evt.getSource().equals(myButton2)) {
          //do something
        }
    }
}
于 2012-12-29T19:26:45.793 に答える