我想写一个简单的应用程序,当你点击关闭时 - 新窗口(阶段)向上推,并问你是否真的想要它。我知道它是如何以编程方式实现的,但不知道如何使用fxml
和controllers
来实现。
如果主要应用阶段和确认阶段将使用分开的controllers
,并且每个controller
将映射为一个fxml
文件,我该如何将结果值从确认返回到主阶段?
答案 0 :(得分:1)
我认为您可能需要简单的Dialog或Alert。如果您不喜欢Java Dialogs的默认外观,可以扩展DialogPane(或Dialog本身),将其设计为FXML,将<h1>New product</h1>
<% form_for(@product) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :title %><br />
<%= f.text_field :title %>
</p>
<p>
<%= f.label :description %><br />
<%= f.text_area :description, :rows => 6 %>
</p>
<p>
<%= f.label :image_url %><br />
<%= f.text_field :image_url %>
</p>
<p>
<%= f.label :price %><br />
<%= f.text_field :price %>
</p>
<p>
<%= f.submit "Create" %>
</p>
<% end %>
<%= link_to 'Back', products_path %>
设计为Dialog。
以下是如何从简单的警报创建,显示和获取结果而没有任何花哨的外观:
setDialogPane
关闭主舞台的部分。您可以拦截并处理关闭请求。
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.showAndWait().ifPresent(response -> {
if (response == ButtonType.OK) {
System.out.println("User clicked OK");
}
});
通过使用该事件,您可以根据需要阻止关闭阶段。
因此,如果您想要来自用户的确认,只需将Alert置于onCloseRequest处理中并在他下定决心时使用该事件(点击取消)。