当前位置: 首页 > 面试题库 >

javafx.scene.control.Dialog 按下“ x”将不会关闭

隆谦
2023-03-14
问题内容

如果我只是创建一个从扩展的空类javafx.scene.control.Dialog<R>,那么当我按下右上角的“ x”按钮时,它不会关闭。

我如何实现这种行为?该API似乎告诉我,我需要实现一个关闭按钮。但就我而言,我不需要关闭按钮,我只想用x按钮或按ESC关闭窗口。这可能吗?


问题答案:

要解决此问题,您可以在对话框中添加一个隐藏的关闭按钮。

import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.stage.Stage;

public class DialogClosure extends Application{

    @Override
    public void start(Stage stage) throws Exception {
        Button openDialog = new Button("Open Dialog");
        openDialog.setOnAction(event -> {
            Dialog dialog = new Dialog();
            dialog.getDialogPane().getButtonTypes().add(ButtonType.CLOSE);
            Node closeButton = dialog.getDialogPane().lookupButton(ButtonType.CLOSE);
            closeButton.managedProperty().bind(closeButton.visibleProperty());
            closeButton.setVisible(false);
            dialog.showAndWait();
        });

        stage.setScene(new Scene(openDialog));
        stage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

然后,该对话框既满足您可以通过本机窗口系统的窗口关闭图标关闭的要求,又满足JavaFX
Dialog的要求,即在对话框中包含一个关闭按钮以使关闭图标起作用的要求。

或者,您可以将Stage与showAndWait结合使用,而不是Dialog。使用窗口系统的关闭窗口图标可以关闭不包含任何包含按钮的舞台。



 类似资料:
  • 刚开始使用pygame,当你按住箭头键时,试图让一个简单的点在屏幕上移动。目前,它只在你按键时移动,但你必须重复按键。 此外,我很感激你对我目前的代码有任何建议,可以改进或改变,使之更有效。

  • 我们遇到了一个问题,我们的一个Elasticsearch数据节点在AWS中完全死了。即使有了第二个节点,我们也难以使集群重新联机。它最初以状态出现,我们可以检索数据,但不能写入数据。 弹性搜索误差 [2016-09-12 13:16:42,312][WARN][discovery.zen.ping.unicast][目击域网]无法将ping发送到[{#Cloud-I-CB397257-0}{1.1

  • 我以编程方式生成了许多按钮(一些按钮用于增加值,而另一些按钮用于减少值),当它们调整的值达到最大值或最小值时,我会禁用这些按钮。(即,当达到最大值时,“增加”按钮被禁用,而当达到最小值时,“减少”按钮被禁用。)除了禁用,我还将按钮状态设置为“按下”,以直观地指示已达到极限值,并且按钮不再工作。 我的按钮onClickListener的'增加'按钮看起来像这样: ClickListeners上相应的

  • 当用户使用窗口关闭按钮(红色X)按钮关闭任何应用程序窗口时。它会导致我的应用程序出现小部件被释放问题。当他们使用我提供的关闭应用程序关闭窗口时。一切正常。 按下车窗关闭按钮(红色X)可以使用上述代码吗

  • 我有一个带有searchView图标的操作栏。我点击searchView图标,出现softInputMode键盘,我的ListView出现用于搜索。但是,当您关闭searchView时,searchView会关闭,但我无法让ListView在searchView关闭时也关闭。 下面是我在activity_maps中的ListView代码。xml 地图ctivity.java 所以最初当MapsAc

  • 我是Android新手。我正在尝试制作一个应用程序,它将在后台运行,并检测三次快速按下电源按钮。我查阅了很多资料,但无法澄清我的困惑。谁能给我一些建议吗?蒂亚。