java - 有没有办法在没有事件处理程序的情况下等待按钮点击?

标签 java button javafx int return

有什么方法可以在按下“确定”按钮时返回某个整数,并在按下右上角的退出按钮时返回另一个数字?

编辑:这只是从一个更大的类中取出的方法。请假设该窗口已显示。我要求的是确保返回任意两个数字的代码,但前提是按下按钮。

<小时/>
public static int showMessageDialog(String title, String object_message){
    stage = new Stage();
    stage.setMinHeight(150);
    stage.setMinWidth(250);
    stage.setTitle(title);

    ok = new Button("OK");

    gridPane = new GridPane();
    gridPane.setAlignment(Pos.CENTER);
    gridPane.setVgap(30);

    message = new Text(object_message);
    gridPane.addColumn(0, message, ok);
    scene = new Scene(gridPane);
    stage.setScene(scene);
    stage.show();
}

最佳答案

如果您想自己执行此操作,只需使 Stage 模式化并使用 showAndWait 而不是 show 来阻止调用线程,直到 Stage 关闭:

public static int showMessageDialog(String title, String object_message){
    stage = new Stage();
    stage.setMinHeight(150);
    stage.setMinWidth(250);
    stage.setTitle(title);
    stage.initModality(Modality.APPLICATION_MODAL);

    IntegerProperty returnCode = new SimpleIntegerProperty(-1);

    ok = new Button("OK");
    ok.setOnAction(ev -> {returnCode.set(1); stage.close();});

    gridPane = new GridPane();
    gridPane.setAlignment(Pos.CENTER);
    gridPane.setVgap(30);

    message = new Text(object_message);
    gridPane.addColumn(0, message, ok);
    scene = new Scene(gridPane);
    stage.setScene(scene);
    stage.showAndWait();

    return returnCode.get();
}

关于java - 有没有办法在没有事件处理程序的情况下等待按钮点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29670728/

相关文章:

java - 如何强制重新渲染 JavaFX ComboBox 下拉列表单元格?

java - 自定义 JavaFX 对话框

swing - 默认 laf 不加载

Java 8 通用 java.util.Function

java - 比较数组并比较两个数组中的每个元素

Windows 批处理文件启动带有按钮的 gui

button - 如何根据条件将禁用按钮变成启用按钮

javascript - 更改 var speed 值 onClick?

java - 每次选择新项目时打印选定的组合框项目

java - JTableCombo 值在运行时未更改