javafx - 如何在 JavaFx textArea 中附加多色文本

标签 javafx textarea

这实际上是我的第一个 JavaFx 桌面应用程序。在我的应用程序中,我想将每个事件显示为 textarea 中的日志。我有不同的日志类型、错误、警告等。我想将所有这些日志附加到具有不同颜色的文本区域中。我试过这样(这只是一个示例),

 // Method call is like this
  logText("Enter Ip address First");


// The method 
public void logText(String log){
        log = ">> "+ log +"\n";
        Text t = new Text();
        t.setStyle("-fx-background-color: #DFF2BF;-fx-text-fill: #4F8A10;-fx-font-weight:bold;");
        t.setText(log);
        txtConsole.appendText(t.toString());
    } 

使用上面的代码,我没有收到任何错误,但我的输出如下:
    Text[text=">> Enter Ip address First
", x=0.0, y=0.0, alignment=LEFT, origin=BASELINE, boundsType=LOGICAL, font=Font[name=System Regular, family=System, style=Regular, size=12.0], fontSmoothingType=GRAY, fill=0x000000ff]

我该如何解决这个问题?我尝试了stackoverflow中提到的各种方法(这是其中之一)。

*** 请注意,此应用程序仅供企业使用,因此我需要严格遵守许可证。

提前致谢。

最佳答案

您需要更换 t.toString()t.getText()txtConsole.appendText(t.toString())
TextArea 中不能有彩色文本 .尝试使用 TextFlow 反而。

您有可以添加到 TextFlow 的彩色文本:

public class TextFlowSample extends Application {

    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage stage) {
        TextFlow flow = new TextFlow();
        String log = ">> Sample passed \n";
        Text t1 = new Text();
        t1.setStyle("-fx-fill: #4F8A10;-fx-font-weight:bold;");
        t1.setText(log);
        Text t2 = new Text();
        t2.setStyle("-fx-fill: RED;-fx-font-weight:normal;");
        t2.setText(log);
        flow.getChildren().addAll(t1, t2);
        stage.setScene(new Scene(new StackPane(flow), 300, 250));
        stage.show();
    }
}

如果您可以灵活使用外部库,请查看 RichTextFX

关于javafx - 如何在 JavaFx textArea 中附加多色文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29149504/

相关文章:

java - 无法在 intellij idea 中使用 gradle 构建 javafx 项目

java - JavaFX 中是否有 CHANGEABLE ListProperty?

java - 如何确保按钮上的 Fxml 方法在监听器之前被调用?

html - textarea 的 "required"属性不起作用,即使值为空

python - 使用 WTForms 填充文本区域字段

html - 添加填充会使文本区域输入在某些操作系统上不可见

java - JPA EntityManager 和 JavaFx

java - 显示 Unity WebPlayer 内容

javascript - 将 contenteditable div 限制为可见部分

html - 使用 cols/rows 或 style-width/height 来指定文本区域的尺寸?