如何为 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");
}
}
});
如果我为 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");
}
}
});