Я пытался работать с преобразованием масштабирования в JavaFX, но не совсем смог окунуться в него. По сути, у меня есть панель, содержащая сложный график, и я хотел бы иметь возможность масштабировать ее. Сама часть масштабирования работает нормально, однако окружающая панель прокрутки не адаптируется к графику.
Для простоты я опубликую короткий пример, в котором мой график заменен меткой:
public class TestApp extends Application {
@Override public void start(final Stage stage) throws Exception {
final Label label = new Label("Hello World");
label.getTransforms().setAll(new Scale(0.5, 0.5));
label.setStyle("-fx-background-color:blue");
label.setFont(new Font(200));
final ScrollPane scrollPane = new ScrollPane();
scrollPane.setContent(label);
stage.setScene(new Scene(scrollPane));
stage.setWidth(200);
stage.setHeight(100);
stage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
Метка будет масштабироваться правильно, но окружающие ее полосы прокрутки по-прежнему будут вмещать компонент исходного размера.
Я пробовал до сих пор:
- Игра с метками min и pref size
- обертывание метки внутри группы (никаких полос прокрутки не будет)
- масштабирование вмещающей группы, а не метки
Что мне не хватает? Что я могу сделать, чтобы ScrollPane адаптировался к представлению содержимого?
Спасибо за вашу помощь.