Java FX "mass"处理按钮

标签 java javafx scenebuilder

我已经使用 SceneBuilder 在 Java FX 中启动了一个 TicTacToe 项目。 FXML 仅包含 GridPane 内的 3x3 按钮网格。

我想做的是创建一种“通用”方法,以便当按下其中一个按钮时,它会将其文本更改为“O”或“X”,前提是它尚未分配给任何一个按钮一个。

类似这样的

private void onButtonClick(){
    if (btn00.getText() == null)
        btn00.setText("X or O");
}

其中 btn00 不是按钮的具体名称,而是选定的按钮,如 someTableView.getSelectionModel()... 适用于 TableView

最佳答案

假设所有这些按钮都有 onButtonClick方法注册为 onAction事件处理程序,您可以添加 ActionEvent参数并检索Button来自source属性。

private void onButtonClick(ActionEvent event) {
    Button button = (Button) event.getSource();
    if (button.getText() == null || button.getText().isEmpty()) {
        button.setText("X or O");
    }
}

关于Java FX "mass"处理按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50124007/

相关文章:

java - 遇到编译器错误 : Exception in Application start method.(这是简单的 JavaFX 程序)

JavaFX:如何在 TreeView 中添加复选框和按钮?

java - 如何在另一个已激活时加载 FXML?

java - 干净的代码、无状态 session bean 和私有(private)状态

java - 具有重复错误方法的 Ruby 变体

java - 设计问题: How to use composition the best

JavaFx TableView 列不填充 TableView 宽度

Java8 - 将异步接口(interface)转换为同步接口(interface)

java - 当我使用选项卡时 getSelectionModel 无法打开

java - 在 javafx 中向文本字段添加特殊字符