我正在尝试显示自己正在制作的游戏的得分,但由于某种原因,一旦添加到组中,该文本将不会出现。

这是我的代码:

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);


这使得scoreTextscorePane的子代,在这里又一次:

root.getChildren().add(scoreText);


这使得scoreTextroot的子代。由于节点不能在场景图中出现两次,因此将无法正常工作。

如果要将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);

10-07 12:41