【问题标题】:Java Textfield 2 ColorsJava 文本字段 2 种颜色
【发布时间】:2017-06-26 20:53:57
【问题描述】:

有人知道如何在 Java 文本字段 (Java FX)(在标签上)的一个句子上放置两种不同的颜色吗?我也在使用 CSS,但更愿意直接在类中设置它。

【问题讨论】:

    标签: java javafx colors textfield


    【解决方案1】:

    您需要使用TextFlow

    富文本和双向支持

    您可以使用 TextFlow 布局窗格创建多个 Text 节点并将它们布置在单个文本流中。 TextFlow 对象使用每个 Text 节点的文本和字体,但忽略其子节点的换行宽度及其 x 和 y 属性。 TextFlow 对象使用自己的宽度和文本对齐方式来确定每个子对象的位置。示例 39-12 显示了三个 Text 节点,它们在 TextFlow 窗格中具有不同的字体和文本布局。

    String family = "Helvetica";
    double size = 50;
    
    TextFlow textFlow = new TextFlow();
    textFlow.setLayoutX(40);
    textFlow.setLayoutY(40);
    
    // Red
    Text text1 = new Text("Hello ");
    text1.setFont(Font.font(family, size));
    text1.setFill(Color.RED);
    
    // Orange
    Text text2 = new Text("Bold");
    text2.setFill(Color.ORANGE);
    text2.setFont(Font.font(family, FontWeight.BOLD, size));
    
    // Green
    Text text3 = new Text(" World");
    text3.setFill(Color.GREEN);
    text3.setFont(Font.font(family, FontPosture.ITALIC, size));
    
    textFlow.getChildren().addAll(text1, text2, text3);
    
    Group group = new Group(textFlow);
    Scene scene = new Scene(group, 500, 150, Color.WHITE);
    stage.setTitle("Hello Rich Text");
    stage.setScene(scene);
    stage.show();
    

    https://docs.oracle.com/javase/8/javafx/user-interface-tutorial/text-settings.htm

    上面的示例将生成带有红色、橙色和绿色(以及不同样式)的 Hello Bold World。除非您想要一个严格的 CSS 解决方案,否则您无法使用 TextField 完成您想要的。文本流是要走的路

    【讨论】:

      【解决方案2】:

      使用两个不同的标签!鉴于您似乎已经知道如何使用它们,只需将文本与标签分开并使用它们来设置颜色。

      【讨论】:

        猜你喜欢
        • 2011-10-17
        • 1970-01-01
        • 2021-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多