按下按钮消失'按下时

时间:2016-08-05 15:18:07

标签: java javafx fxml scenebuilder

所以我试图制作一种“财富之轮”游戏或者刽子手。我有33个代表字母的按钮,1个按钮= 1个字母。当用户按下一个时,它必须“消失”。 (变得禁用和不可见)。我在SceneBuilder中创建了所有按钮,因此它们位于FXML文件中。

我该怎么做?我为第一个按钮创建了这个方法。但它无法正常工作,无论按下第一个消息按钮是什么按钮。是否有更简单的方法来为每个按钮编写33种不同的方法?

public void letterChosen (ActionEvent evt) {
    b1.setDisable(true);
    b1.setVisible(false);

1 个答案:

答案 0 :(得分:2)

点击的Button可用作source的{​​{1}}。

另外ActionEvent可以附加到userData,以防您无法获得处理Button其他属性的按钮点击所需的信息:

Button

FXML

public void letterChosen(ActionEvent event) {
    Button source = (Button) event.getSource();
    source.setVisible(false);
    System.out.println("pick: "+source.getUserData());
}

请注意,没有必要禁用未显示的<Button onAction="#letterChosen" userData="a" text="A"/> <Button onAction="#letterChosen" userData="b" text="B"/> ,因为无法看到不可见的Node。默认情况下,已停用的Node会显示为“褪色”,但也可能会以不同方式显示,例如使用CSS。