我正在尝试显示自己正在制作的游戏的得分,但由于某种原因,一旦添加到组中,该文本将不会出现。
这是我的代码:
Text scoreText = new Text(scoreString);
scoreText.setFont(new Font("ARIAL", 30);
scoreText.setStyle("-fx-font-weight: bold;");
scoreText.setFill(Color.WHITE);
Pane scorePane = new Pane(scoreText);
scoreText.relocate(100, 100);
root.getChildren().add(scoreText);
最佳答案
您正在尝试将scoreText
添加到两个不同的父级:一次在这里:
Pane scorePane = new Pane(scoreText);
这使得
scoreText
是scorePane
的子代,在这里又一次:root.getChildren().add(scoreText);
这使得
scoreText
是root
的子代。由于节点不能在场景图中出现两次,因此将无法正常工作。如果要将
scoreText
包裹在窗格中,请将其添加到窗格中,然后将窗格添加到root
中:Text scoreText = new Text(scoreString);
// ...
Pane scorePane = new Pane(scoreText);
scoreText.relocate(100, 100);
root.getChildren().add(scorePane);
如果您不需要窗格中的内容,则只需将其直接添加到
root
中即可:Text scoreText = new Text(scoreString);
// ...
// omit this:
// Pane scorePane = new Pane(scoreText);
scoreText.relocate(100, 100);
root.getChildren().add(scoreText);