В настоящее время я работаю над проектом, который опирается на представление размеров файлов через прямоугольники. То, что я застрял в течение довольно долгого времени, было масштабирование высоты до размера, который мог бы вписаться в мою сцену. Это ключевая часть проекта, так как позволяет пользователю визуально сравнивать размеры файлов, которые они просматривают, из любого каталога на своем компьютере. EDIT: Я пытался добавить изображение, но я не получил достаточно репутацию еще :( http://tinypic.com/r/2e56pol/8Уменьшение высоты прямоугольника для установки в окне в javafx
ответ
Почему вы не просто связать высоту прямоугольника с помощью сцены:.
rectangle.heightProperty().bind(scene.heightProperty());
полный пример:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class DemoTabPane extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Rectangle rectangle = new Rectangle(20,20,200,200);
rectangle.setStroke(Color.BLACK);
Scene scene = new Scene(new HBox(rectangle), 100, 100);
rectangle.heightProperty().bind(scene.heightProperty());
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Я не совсем понимаю, код. Не могли бы вы объяснить это? Я имею в виду привязку ширины, особенно. –
Связывание помогает связать высоту вашего прямоугольника относительно высоты сцены/сцены. В моем примере коэффициент составляет 100%, т. Е. Независимо от того, насколько большой или малый ваш уровень, прямоугольник полностью заполнит высоту. – ItachiUchiha
Обязательно ли я связывать его до или после внесения изменений для заполнения, угла поворота ... и т. Д.? –
вы можете определить коэффициент масштабирования, зная максимальную высоту ваших прямоугольников и высоту окна (MaxHeight/viewHeight), вы можете затем множественные текущая высоту ваших прямоугольников это фактор для получения равномерного масштабирования. Вы также можете визуализировать прямоугольники изображения, а затем масштабировать Мага в целом. Но идея остается той же ... – MadProgrammer
, поэтому мне нужно найти наибольшую высоту всех прямоугольников? –
Еще одна идея - нормализовать высоты, так что высотный прямоугольник будет иметь коэффициент 1 и наименьший 0. Это позволит вам отображать прямоугольники, не заботясь о том, чтобы всегда рассчитывать масштаб (поскольку нормализованные значения уже масштабируется) – MadProgrammer