打印输入彩色到窗口

时间:2016-10-19 12:13:05

标签: java javafx

我试图用javafx创建一个窗口,并以不同的颜色将我的输入打印到这个窗口。

以下是我在JavaFx中尝试在窗口出现后添加一行的内容。

public void start(Stage stage) {
    stage.setTitle("Java chat client"); 
    tf = new TextFlow();
    Text t;
    t=new Text("tetd\n");
    t.setFill(Color.GREEN);
    tf.getChildren().addAll(t);
    t=new Text("blblblb");
    tf.getChildren().add(t);
    group = new Group(tf);
    Scene scene = new Scene(group, 650, 150, Color.WHITE);
    stage.setScene(scene);
    stage.show(); 
}

这就是我尝试在我的主要文件中添加新文本的内容:

public static void main(String[] args) {
    Application.launch(Client.class);
    Text t;
    t=new Text("tetd\n");
    t.setFill(Color.RED);
    tf.getChildren().add(t);
    group.getChildren().add(tf);
}

当我尝试这个时,我得到了一个

  

java.lang.IllegalArgumentException:Children:重复的子项添加:parent = Group @ 1706bae [styleClass = root]

任何建议如何添加文字?

感谢您的帮助

1 个答案:

答案 0 :(得分:-1)

实现这一目标的一种很好的方式也是一个很好的学习机会,就是使用CSS。下面的代码是一个示例,它将更改TextArea的文本颜色。

.text-area{
    -fx-text-fill: green;
}

然后您可以将此样式表添加到您的节点(在本例中为文本区域),如此。

@FXML TextArea myTextArea;

@Override
public void initialize(){
    myTextArea.getStyleSheets.add("Path to your style sheet (i.e bin/textColor.css"));
}

如果您已经熟悉了javaFX和可初始化的界面,那么这对您来说非常有意义。在任何其他情况下,我强烈建议您了解这些功能。只要一行,您就可以启用下划线并将文本设置为一堆空白区域。希望这会有所帮助。