我试图用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]
任何建议如何添加文字?
感谢您的帮助
答案 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和可初始化的界面,那么这对您来说非常有意义。在任何其他情况下,我强烈建议您了解这些功能。只要一行,您就可以启用下划线并将文本设置为一堆空白区域。希望这会有所帮助。