我正在尝试使用JFoenix在屏幕上显示一个简单的对话框,但是,每次尝试显示时,都会出现错误,“未设置JFXDialog容器” 我知道这意味着没有显示stackPane,所以我想知道如何初始化StackPane,然后显示对话框
功能:
@FXML
public StackPane stack;
public void show() {
JFXDialog dialog = new JFXDialog();
dialog.setContent(new Label("Content"));
dialog.show(stack);
}
堆栈窗格是使用JavaFX Scene构建器创建的,它是rootPane的子元素,rootPane是锚定窗格
答案 0 :(得分:0)
即使自您发布问题以来已经过了一段时间,但这些天其他人也可能会遇到同样的问题。
JFXDialog需要a)JFXDialogLayout和b)容器,在您的情况下为StackPane。因此,要使其工作,必须向JFXDialog指示什么是容器。这可以通过使用构造函数JFXDialog dialog = new JFXDialog(stack, layout, JFXDialog.DialogTransition.RIGHT);
来完成。那是:
@FXML
public StackPane stack;
public void show() {
JFXDialogLayout layout = new JFXDialogLayout();
layout.setHeading(new Label("Header"));
layout.setBody(new Label("Lorem ipsum"));
JFXDialog dialog = new JFXDialog(stack, layout,
FXDialog.DialogTransition.RIGHT);
JFXDialog.DialogTransition.RIGHT);
dialog.show();
}
这应该可以完成工作。