如何为 DefaultOption 自定义 ExtendedDescription 视图?

How can I customize the ExtendedDescription view for DefaultOption?

如果我为 DefaultOption 设置 ExtendedDescription 文本,单击该选项会打开一个视图,其中文本显示在 HBox 中并居中。我想自定义文本所在的 HBox 区域:不仅将文本居中对齐,还可以为文本或文本的 bold/italicise 部分着色,添加一个小图像也许...

我没有看到任何 API 可以访问与自定义相关的任何内容,除了 OptionEditor 但当我尝试调用 editorFactoryProperty() 时,可选的总是空的。我应该自己创建一个并设置它吗?流程是怎样的?

到目前为止,扩展视图还没有 API。

如果您使用 ScenicView 检查它,您可以看到视图节点应用了自定义样式 类,因此您将能够在运行时使用查找来获取BorderPane(id:extended-pane),顶部的HBox(id:extended-top),中间的(id:extended-center),以及它的 Text child (styleClass: extended-text).

像这样的东西应该可以工作:

viewProperty().addListener((obs, ov, nv) -> {
        if (nv != null && nv.getName().startsWith("Extended_View_Gender")) {
            BorderPane pane = (BorderPane) nv.lookup(".extended-pane");
            if (pane != null) {
                Text text = (Text) pane.lookup(".extended-text");
                text.setStyle("-fx-fill: red");
            }
        }
    });