ControlsFX 通知中的粗体文本部分

Bold Text Parts in ControlsFX Notification

我正在尝试在通知正文中写粗体文本。

Notifications.create()
    .title("My Title")
    .text("This is <bold>text</bold>")
    .showInformation();

据我所知,只有 .text("my text") 方法可以设置通知的文本。 但是我想在那里使用 TextFlow 来修改文本的某些部分。

我也曾尝试为此使用 CSS,但这只能让我更改通知的整体外观,因为明确不支持通过 CSS 设置特定文本。

我现在的问题是:有没有办法对通知中的部分文本设置不同的样式?

现在可以使用了。 解决方案是使用.graphic(Node node)。如果您仍想在左侧显示图像,则需要将所有内容都放在 Pane 中并添加一些填充。 我从 here.

中提取了原始图像
        BorderPane borderPane = new BorderPane();
    borderPane.setLeft(new ImageView(Controller.class.getResource("/dialog-information.png").toExternalForm()));
    TextFlow textFlow = new TextFlow();
    textFlow.setPadding(new Insets(15, 0, 5, 5));
    Text text1 = new Text("This is ");
    Text text2 = new Text("bold");
    text2.setStyle("-fx-font-weight: bold");
    textFlow.getChildren().addAll(text1, text2);
    borderPane.setRight(textFlow);
    Notifications.create()
            .title("My Title")
            .graphic(borderPane)
            .hideAfter(Duration.seconds(10))
            .show();

使用 .show() 而不是 .showInformation/Error/Warning() 很重要,因为那样会覆盖 BorderPane。

结果: