gpt4 book ai didi

JavaFX 对话框一次又一次返回相同的结果

转载 作者:行者123 更新时间:2023-11-30 07:29:31 25 4
gpt4 key购买 nike

已解决:我认为这不是 JavaFX 的错误,它是故意这样做的,因此如果您不想将结果保存到变量中,可以从对话框中多次请求结果。为了刷新缓存,我在对话框上使用了 setResult(null) 。这对我来说是成功的:)

我创建了一个对话框来使用 JavaFX 编辑/创建人员。但我想我发现了一个错误。我已将两个 ButtonType 对象添加到我的对话框中。一种用于保存,一种用于中止操作。当我使用这些按钮时,它工作得很好。但是,如果我按“X”关闭对话框窗口,对话框将自动再次返回最后的结果。这意味着,如果我中止了上一个操作,并且在当前操作中按“X”关闭窗口,则对话框不会返回任何结果,因为中止按钮上次没有。但是,如果我在上一个操作中按下保存按钮,然后在当前操作中按下“X”,它会再次返回同一个人,因为保存按钮上次的结果中有这个人。如何使对话框在关闭时变为无结果?

这是我创建的操作:

   this.createPersonAction = new Callback<ButtonType, PersonSession>() {

@Override
public PersonSession call(final ButtonType param) {
if (param.equals(PersonDialogController.this.saveButton)) {
final String firstName = PersonDialogController.this.firstNameField.getText();
final String lastName = PersonDialogController.this.lastNameField.getText();
final Person p = BeanFactory.createPerson(firstName, lastName);
if (p != null) {
return new PersonSession(p);
}
}
return null;
}
};

这里有我的两个 ButtonType-Objects:

private final ButtonType saveButton = new ButtonType(GuiStringRresource.LABEL_SAVE_BUTTON, ButtonData.OK_DONE);
private final ButtonType abortButton = new ButtonType(GuiStringRresource.LABEL_ABORT_BUTTON,
ButtonData.CANCEL_CLOSE);

最佳答案

使用Dialog.setOnCloseRequest方法来处理这种情况。

关于JavaFX 对话框一次又一次返回相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36352080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com