저는 최근에 JavaFX를 배우기 시작한 초보자이며, 제 프로그램 내에서 같은 실수를 반복하고있는 것으로 보입니다. 예를 들어, 다음 코드에서는 X 축과 Y 축을 그려서 패널의 너비와 높이의 절반에 바인딩하려고합니다. 실행될 때 축은 매우 작고 토플렛 코너에 위치하지만 응용 프로그램의 창 크기를 조정하면 창 크기가 더 이상 조정되지 않을 때까지 축의 크기가 서서히 증가합니다.JavaFX : 창에 문제 바인딩 속성이 있습니다.
public class Debug extends Application {
@Override
public void start(Stage primaryStage) {
Pane pane = new Pane();
GraphFunc test = new GraphFunc();
pane.getChildren().add(test);
Scene scene = new Scene(pane, 500, 500);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
class GraphFunc extends Pane {
private double xAxisSpan, yAxisSpan;
public GraphFunc() {
xAxisSpan = 100;
yAxisSpan = 100;
drawAxes();
}
private void drawAxes() {
Line xAxis = new Line(0, 50, 100, 50);
Line yAxis = new Line(50, 0, 50, 100);
xAxis.setStartX(0);
xAxis.startYProperty().bind(heightProperty().divide(2));
xAxis.endXProperty().bind(widthProperty());
xAxis.endYProperty().bind(heightProperty().divide(2));
yAxis.startXProperty().bind(widthProperty().divide(2));
yAxis.setStartY(0);
yAxis.endXProperty().bind(widthProperty().divide(2));
yAxis.endYProperty().bind(heightProperty());
getChildren().addAll(xAxis, yAxis);
}
}
창을 StackPane으로 변경하면이 작업이 수행되지 않으므로 혼란 스럽습니다. 또한 drawAxes()의 코드를 start()로 옮기고 선을 창에 추가하면이 작업도 수행되지 않습니다. 설명해주십시오. 연구하고 놀고 난 후에 무슨 일이 일어나는지 이해할 수없는 것 같습니다.
감사합니다. – woodenwaffle