JavaFX динамически изменяет размер окна в зависимости от количества элементов VBoxJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 JavaFX динамически изменяет размер окна в зависимости от количества элементов VBox

Сообщение Гость »

Я хочу создать служебный инструмент, который будет изменять размер по вертикали при добавлении или удалении дочерних элементов из VBox. Дети изменяются посредством пользовательского ввода. Размер окна приложения пользователь не может изменить.
Я создал файл fxml следующим образом: и класс контроллера:

Код: Выделить всё

public class DynamicResizeController {

@FXML
private VBox vBox;

@FXML
private AnchorPane rootPane;

public void handleAddButtonClick(ActionEvent event) {
Label label = new Label("New Element added!");
vBox.getChildren().add(label);
calculateAndResize();
}

private void calculateAndResize() {
double totalHeight = 0;
for (Node child : vBox.getChildren()) {
totalHeight += child.prefHeight(-1) + child.getLayoutY();
}
resizeStage(totalHeight);
}

private void resizeStage(double height) {
// set height of stage to height
}
}
Основной класс довольно прост:

Код: Выделить всё

public class DynamicResizeApplication extends Application {

@Override
public void start(Stage stage) throws Exception {
FXMLLoader fxmlLoader = new FXMLLoader(DynamicResizeApplication.class.getResource("view/dynamic-resize-view.fxml"));
Scene scene = new Scene(fxmlLoader.load());

stage.setScene(scene);
stage.initStyle(StageStyle.UNDECORATED);
stage.show();
}

public static void main(String[] args) {
launch(args);
}
}
Как установить высоту сцены? Я не нашел способа получить доступ к своей сцене в классе контроллера.

Подробнее здесь: https://stackoverflow.com/questions/782 ... x-elements
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»