当前位置: 首页 > 知识库问答 >
问题:

按钮不使用JavaFx更改局部原始变量

李安歌
2023-03-14

我是JavaFx新手,我正在尝试创建一个简单确认框类,用于确定用户是否真的想要退出。它有一个返回布尔值的函数,表示用户单击“是”或“否”:

public class ConfirmBoxController implements IView {

    public javafx.scene.control.Button yes_BTN;
    public javafx.scene.control.Button no_BTN;

    private volatile boolean answer;

    // Constructors..//

    public boolean confirm(){
        try{
            stage = new Stage();
            FXMLLoader fxmlLoader = new FXMLLoader();
            Parent root = fxmlLoader.load(getClass().getResource("ConfirmBox.fxml").openStream());
            Scene scene = new Scene(root, 250, 140);
            stage.setScene(scene);
            stage.showAndWait();

            return answer;
        }
        catch(Exception E){
            E.printStackTrace();
            return true;
        }
    }

    public void yes() {
        this.answer = true;
        Stage stage = (Stage) yes_BTN.getScene().getWindow();
        stage.close();
    }

    public void no() {
        this.answer = false;
        Stage stage = (Stage) no_BTN.getScene().getWindow();
        stage.close();
    }
}

我试着让“答案”变得不稳定,但这并没有改变任何事情。

共有1个答案

农飞星
2023-03-14

您可以使用DialogAlert中的javafx构建来实现此功能,这里是如何使用它们的教程:http://code.makery.ch/blog/javafx-dialogs-official/

这是您可能需要的:

Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle("Confirmation Dialog");
alert.setHeaderText("Look, a Confirmation Dialog");
alert.setContentText("Are you ok with this?");

Optional<ButtonType> result = alert.showAndWait();
if (result.get() == ButtonType.OK){
    // ... user chose OK
} else {
    // ... user chose CANCEL or closed the dialog
}

或者,如果需要“是/否”警报,则添加两个按钮类型

Alert yesNoAlert = new Alert(Alert.AlertType.CONFIRMATION);
yesNoAlert.setTitle("Title");
yesNoAlert.setContentText("Content");
yesNoAlert.setHeaderText("Header");


ButtonType buttonYes = new ButtonType("Yes", ButtonBar.ButtonData.YES);
ButtonType buttonNo = new ButtonType("No" , ButtonBar.ButtonData.NO);

yesNoAlert.getButtonTypes().setAll(buttonYes,buttonNo);

Optional<ButtonType> result = yesNoAlert.showAndWait();
if (result.get() == buttonYes){
    // ...
} else  {
    // ...
}
 类似资料:
  • 我正在制作一个计算器。到目前为止,我已经创建了几个类。有一个IntegerButton,当它被按下时,应该在监视器上显示它的值。 但是,我不明白如何做到这一点。 当我在每个按钮的构造函数中定义句柄(ActionEvent事件)时,我无法引用监视器。此外,我完全迷失了EventHandler的概念。我的监视器应该监听事件吗?我的Button是否应该在start(舞台初选阶段)方法中调用它的setOn

  • 在我的项目中,我正在尝试用单选按钮更改src。` 正如你从我的代码中看到的,我正在尝试改变4个SRC。“Imghali”和“Qrimage”正在为我的项目工作。当我检查我的按钮(birinci1和birinci2)“imghali”和“qrimage”时,src正在改变。但是“Arhali”src(AR-Button的src)没有改变。 这里怎么了?任何解决方案或建议都会很好。 我的项目链接 nu

  • 问题内容: 我刚刚创建了angularJS应用程序。 这是我的 index.html app.js 我有login.html,register.html和forgotpassword.html,home.html。每个人在单独的文件中都有单独的控制器。login.js,register.js,forgot.js,home.js。 login.js 同样,我在其他控制器中也有post方法。 我想要的

  • 问题内容: Java的设计者是否有任何理由认为不应为局部变量提供默认值?认真地讲,如果实例变量可以被赋予默认值,那为什么我们不能对局部变量做同样的事情呢? 问题答案: 声明局部变量主要是为了进行一些计算。因此,程序员决定设置变量的值,并且不应采用默认值。如果程序员错误地没有初始化局部变量并且使用默认值,则输出可能是一些意外值。因此,在使用局部变量的情况下,编译器将要求程序员在访问变量之前使用一些值

  • 我想用一个按钮在三个不同的位置改变图像的位置...用我的代码图像只移动了一个位置... ViewController.h ViewController.m }

  • 我有并发布了jQuery代码,用于检查选中了哪一个单选按钮,然后更改其中一些按钮的颜色。此外,我还想在其中一个按钮被按下后禁用这些按钮。我的问题是,当我检查例如'a'时,所有的答案都变成红色,而不是'a'变成绿色,所有其他的都变成红色。 null null