如何在JavaFX中使用JFoenix的JFXDialog创建对话框

时间:2016-08-08 13:45:55

标签: javafx

我搜索 jfoenix jfxdialog 的示例任何人都有此工作演示

JFXDialog dialog = new JFXDialog();  

1 个答案:

答案 0 :(得分:11)

JFXDialog有三个不同的构造函数:

  1. JFXDialog()
  2. JFXDialog(StackPane dialogContainer, Region content, DialogTransition transitionType)
  3. JFXDialog(StackPane dialogContainer, Region content, DialogTransition transitionType, boolean overlayClose)
  4. 第一个只是将animationType设置为Center

    第二个设置父(dialogContainer),内容(content)和animationType(transitionType)。

    如果单击叠加层(overlayClose),如果对话框应关闭,则第三个设置与第二个设置相同。

    对于Dialog的父级,您需要StackPane

    对于内容,您可以使用Region的儿童,孙子......的任何内容。我建议您使用JFXDialogLayout扩展StackPane,以便更轻松地为对话设置样式。

    对于transitionType,你有五个不同的:

    • DialogTransition.TOP
    • DialogTransition.RIGHT
    • DialogTransition.BOTTOM
    • DialogTransition.LEFT
    • DialogTransition.CENTER

    如果要点击叠加集overlayClosetrue关闭它,请将其设置为false

    JFXDialog有一些有用的方法:

    • setDialogContainer(StackPane dialogContainer)设置父级。
    • setContent(Region content)设置对话框的内容。
    • setOverlayClose(final boolean overlayClose)您是否想要通过点击叠加来关闭对话框。
    • show(StackPane dialogContainer)显示给定JFXDialog
    • 中的StackPane
    • show()在其父
    • 中显示JFXDialog
    • close()关闭JFXDialog
    • setTransitionType(DialogTransition transition)DialogTransition设置为之前提及的
    • 之一
    • setOnDialogClosed(EventHandler<? super JFXDialogEvent> handler)定义关闭对话框时要调用的函数。它将在关闭动画结束后触发。
    • setOnDialogOpened(EventHandler<? super JFXDialogEvent> handler)定义打开对话框时要调用的函数。它将在节目动画结束后触发。

    JFXDialogLayout只有一个空构造函数,但包含headingbodyactions

    JFXDialogLayout类为所有这些部分提供了一个setter。那些是:

    • setHeading(Node... titleContent
    • setBody(Node... body)
    • setActions(Node... actions)

    如果您不知道,由于Node之后的三个点,您可以向所有三个部分添加无限节点。这是一项名为Varargs

    的功能

    有关详细信息,请查看Java控制器JFoenix/Dialog Container和FXML文件JFoenix/JFXDialog.fxml上的github上的演示

    此处还包含JFXDialogJFXDialogLayout JFoenix/controls

    的控件的源代码

    我建议你编写分别用Java,FXML和CSS文件的JavaFX应用程序。 Why Use FXML