gpt4 book ai didi

JavaFx : lookup doesn't find the correct Node

转载 作者:行者123 更新时间:2023-12-02 12:32:26 25 4
gpt4 key购买 nike

我有两个类(class) Highscore 和 HighscoreEinzelspieler。 Highscore 是父类(super class),其中发生一些像 View 这样的表的逻辑:

public VBox getDisplayHighscore(ArrayList<Spieler> spielerListe) {

VBox output = new VBox();
output.setAlignment(Pos.CENTER);
HBox headerRow = new HBox();

Iterator<Spieler> iterator = spielerListe.iterator();
for (int i = 0; iterator.hasNext(); i++) {
Spieler tmpPlayer = iterator.next();

HBox tmpRow = new HBox();
tmpRow.setAlignment(Pos.CENTER);
tmpRow.getStyleClass().add("tableRow");
tmpRow.setId("tableRowId" + i); //um spaeter die neue Position oder den Gewinner zu markieren

Label tmpName = new Label(tmpPlayer.getName());
tmpName.getStyleClass().add("tableName");
Label tmpVersuche = new Label("" + tmpPlayer.getVersuche());
tmpVersuche.getStyleClass().add("tableVersuche");
Label tmpTimer = new Label("" + tmpPlayer.getTimer());
tmpTimer.getStyleClass().add("tableTimer");
Label tmpPaare = new Label("" + tmpPlayer.getPaare());
tmpPaare.getStyleClass().add("tablePaare");

tmpRow.getChildren().addAll(tmpName, tmpVersuche, tmpTimer, tmpPaare);
output.getChildren().addAll(tmpRow);
}

output.getStyleClass().add("table");
return output;
}

现在我需要在我的子类 HinghscoreEinzelspieler 中使用此函数(带注释的部分不起作用):

public HighscoreEinzelspieler() throws IOException, NamenFehler, AlterFehler {
// Liste auslesen
ArrayList<Spieler> spielerListe = getHighscore();
spielerListe.sort(new SpielerComparatorEinzel());
playerDisplay = super.getDisplayHighscore(spielerListe);
playerDisplay.getStyleClass().add("table");

//Node highlight = Masterklasse.primaryScene.lookup("#tableRowId1");
//System.out.println(highlight);
//highlight.getStyleClass().remove("tableRow");
//highlight.getStyleClass().add("tableRowWinner");

// mittig einbinden
Masterklasse.centerBox.getChildren().addAll(playerDisplay);

}

现在我想从我创建的 getDisplayHighscore 中找到一行。为此,我尝试使用函数 Lookup("#tableRowId"+i) 从静态场景中获取带有 ID 的行。但我总是得到一个“无”,我在 super 类中尝试过:

output.lookup("tableRowId1")

并且成功了。所以我认为静态场景是问题所在。

谢谢,卢卡:)

最佳答案

我不知道什么是Masterklasse.primaryScene,但这应该有效:

playerDisplay.lookup("#tableRowId1");

如果Masterklasse.primaryScene应该指向您的输出,您需要在getDisplayHighscore()方法中分配它:

Masterklasse.primaryScene = output;

关于JavaFx : lookup doesn't find the correct Node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45244788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com