JavaFX изменяет размер и перемещает кнопки / панели внутри панели - PullRequest
0 голосов
/ 27 апреля 2020

Я прочитал много вопросов, не найдя ответа. Я пишу игру и хочу, чтобы она была отзывчивой. Мне удалось изменить размер моего ImageView, связав его с моим Pane, но Button не изменили размер и не изменили положение автоматически. Я не могу понять, как изменить размер и переместить Button s в зависимости от размера окна.

Вот моя основная функция с отображением первой страницы:

public static void main(String[] args) {
    launch(args);
}

public void start(Stage stage) {
    Pane pane = new Pane();
    Scene scene = new Scene(pane);
    scene.getStylesheets().add(getClass().getResource("Style.css").toExternalForm());
    welcomePage(pane);
    stage.setTitle("7Wonders Duel");
    stage.setFullScreen(true);
    stage.setScene(scene);
    stage.show();
}

private void welcomePage(@NotNull Pane pane) {
    playThemeMusic(themeMusic, settingList.get(1));
    ImageView welcomePicture = welcomeDuel;
    setImage(pane, welcomePicture);
    ImageView settingsPicture = new ImageView("dir/Settings.png");
    settingsPicture.setFitWidth(40.0);
    settingsPicture.setPreserveRatio(true);
    Button beginGame = new Button("Commencer la partie");
    Button settingsButton = new Button();
    beginGameButtonStyle(beginGame);
    pane.getChildren().add(settingsButton);
    pane.getChildren().add(beginGame);
    beginGame.setOnAction(e -> {
        playSoundEffect(1, settingList.get(2));
        endOfBackgroundMusic = false;
        themeMusic.stop();
        beginGame.setDisable(true);
        scaleAnimation(beginGame, 2);
        settingsButton.setDisable(true);
        settingsButton.setVisible(false);
        EventHandler<ActionEvent> event = event1 -> {
            beginGame.setVisible(false);
            homeButton(pane);
            printProgress(pane);
        };
        playEventOnTimelineFinished(2, event);
    });
    settingsButton.setOnAction(e -> {
        playSoundEffect(0, settingList.get(2));
        beginGame.setDisable(true);
        beginGame.setVisible(false);
        settingsButton.setDisable(true);
        settingsButton.setVisible(false);
        parametersPage(pane, settingList);
    });
}

Я бы хотел, чтобы мой settingsButton был шириной 3% от размера экрана и высотой 5% размера экрана. А также переводы по осям X и Y. Но я не знаю, как это сделать.

Любая помощь очень ценится.

Спасибо.

...