我需要在 JavaFX 中创建一个对话框。我知道我可以通过修改模式、所有者和可调整大小的属性使舞台表现得像一个对话框。
但是如何隐藏舞台窗口中的“最小化”和“最大化”按钮呢?典型的对话框只有“关闭”按钮。
我需要在 JavaFX 中创建一个对话框。我知道我可以通过修改模式、所有者和可调整大小的属性使舞台表现得像一个对话框。
但是如何隐藏舞台窗口中的“最小化”和“最大化”按钮呢?典型的对话框只有“关闭”按钮。
在 Windows 7 下,在显示窗口之前初始化StageStyle.UTILITY将创建一个只有关闭按钮且没有最小化或最大化按钮的窗口:
Stage dialog = new Stage();
dialog.initStyle(StageStyle.UTILITY);
Scene scene = new Scene(new Group(new Text(25, 25, "Hello World!")));
dialog.setScene(scene);
dialog.show();
如果您想要一套完整的基本 JavaFX 对话框,我会推荐JavaFX UI 沙盒对话框。
JavaFX UI 沙盒不是我创建的,也没有托管在我的网站上(源代码由 Oracle 托管)。我要求 Oracle 记录沙盒对话框 API。如果您愿意,您可以投票或评论该请求。
Makery 的博客有一些关于沙盒对话框的最小的第 3 方文档,包括基本使用示例以及将对话框部分向后移植到 JavaFX 2.2。
更新
JavaFX UI 沙盒已被ControlsFX 项目取代。
更新
Java 8u40 将包含内置于核心平台 API 中的 JavaFX 对话框。您可以尝试Java8u40 的早期访问版本。相关类是 javafx.scene.control.Dialog 及其相关子类,例如 javafx.scene.control.Alert (Alert 类用于显示类似于 Swing 的 JOptionPane 类的标准对话框 - 所以你不需要使用 JOptionPane开箱即用的标准对话框功能)。
Makery 为 Java 8u40 中提供的对话框功能编写了一个新的博客教程。
相关问题
您也可以尝试我的方法来创建 Java FX 8 的自定义对话框窗口。以下链接中提供了带有实际使用示例的源代码和可运行的演示:
https://github.com/bluevoxel/ChooseStage
它的样子是这样的: