JavaFX Node.lookup () возвращает NULL - PullRequest
1 голос
/ 06 мая 2020

Я новичок в JavaFX и пытаюсь динамически добавлять кнопки в TilePane на основе данных, хранящихся в базе данных. Для каждой записи, возвращаемой из базы данных, я добавлю новую кнопку TilePane (кнопка F XML указана ниже). Затем эту кнопку нужно изменить для данных, хранящихся в базе данных.

Я пытаюсь найти метку, которая находится на 2 уровня ниже в кнопке (дочерний элемент Vbox, который помещается в кнопку), он возвращает null.

Что я делаю не так? Я попытался выполнить поиск из Vbox, потому что подумал, что, возможно, это не сработало, потому что это ребенок ребенка. К сожалению, это не помогло.

try {
    while (res.next()){
        addActuator(); //adds the button

        Button button = (Button) Actuator_Tile_Pane.lookup("#placeholder");
        Label label = (Label) button.lookup("#label"); // returns null

        button.setId(res.getString("id"));
        System.out.println(label);
    }
} catch (SQLException e) {
    System.out.println(e.getMessage());
}
<Button fx:id="placeholder" mnemonicParsing="false" prefHeight="150.0" prefWidth="150.0" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1">
    <graphic>
        <VBox fx:id="vbox" alignment="CENTER" prefHeight="200.0" prefWidth="100.0" spacing="10.0">
            <children>
                <Label fx:id="label" text="Label" />
                <ImageView fx:id="img" fitHeight="73.0" fitWidth="98.0" pickOnBounds="true" preserveRatio="true">
                    <image>
                  <Image url="@../icon/lightbulb-on-outline.png" />
                    </image>
                    <effect>
                        <ColorAdjust brightness="-0.12" hue="0.29" saturation="1.0" />
                    </effect>
                </ImageView>
                <ToggleButton fx:id="toggle" blendMode="SRC_ATOP" mnemonicParsing="false" text="ToggleButton">
                    <effect>
                        <ColorAdjust />
                    </effect>
                </ToggleButton>
            </children>
        </VBox>
    </graphic>
    <padding>
        <Insets left="20.0" right="20.0" />
    </padding>
</Button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...