如何创建JavaFX对话框?

cek*_*ock 7 java user-interface javafx javafx-2

我需要在JavaFX中创建一个对话框.我知道我可以通过修改模态,所有者和可调整大小的属性使舞台表现得像一个对话框.

但是如何从舞台窗口隐藏"最小化"和"最大化"按钮?典型对话框只有"关闭"按钮.

jew*_*sea 23

在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();
Run Code Online (Sandbox Code Playgroud)

如果您想要一套完整的基本JavaFX对话框,我建议使用JavaFX UI沙箱对话框.

JavaFX UI Sandbox不是由我创建的,并且不在我的站点上托管(源由Oracle托管).我请求Oracle记录沙箱对话框API.如果您愿意,您可以投票或评论该请求.

Makery的博客提供了沙盒对话框的一些最小的第三方文档,包括基本用法示例以及JavaFX 2.2对话框部分的后端口.

更新

JavaFX UI Sandbox已被ControlsFX项目取代.

更新

Java 8u40将包含内置于核心平台API中的JavaFX对话框.您可以尝试Java8u40早期访问版本.相关的类是javafx.scene.control.Dialog和它的相关子类,如javafx.scene.control.Alert(Alert类用于显示类似于Swing的JOptionPane类的标准对话框 - 因此您不需要使用JOptionPane开箱即用标准对话框功能).

Makery为Java 8u40中提供了一个关于对话功能的新博客教程.

相关问题