Панель прокрутки Увеличить в Java - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть панель прокрутки в java с содержимым в качестве якорной панели, у якорной области есть дочерние элементы, которые представляют собой изображения, связанные с высотой и шириной якорных областей, поэтому они могут точно соответствовать якорной области, а также некоторые круги и линии, представляющие график. Если я увеличить высоту или ширину anchorpane то панель скроллинга т становится автоматически прокручивать давая мне возможность просматривать изображение, как если бы она была наведена, но то, что им пытаются сделать, это увеличить на указанную область на рис, а также , чтобы круги и линии меняли положение в зависимости от масштаба (возможно, используя свойства привязки). Идея, которую я пытаюсь реализовать, состоит в том, чтобы иметь изображение в виде карты и график, представляющий связи между городами, но в то же время я должен был увеличить определенный путь и заставить его пройти всю панель и переходить между областью прокрутки после увеличение.

AnchorPane other;
ImageView image;
ScrollPane scroll;
Button bp;
Button bm;
public void initialize(URL arg0, ResourceBundle arg1) {

    System.out.println("OK");
    Circle c = new Circle(250, 250, 10);
    Circle c2 = new Circle(20, 20, 10);
    Circle c3 = new Circle(40, 200, 10);
    c3.setFill(Color.RED);
    c3.setVisible(true);
    c2.setFill(Color.RED);
    Line line = new Line();
    Line line2 = new Line();
    Line line3 = new Line();
    line.setStartX(c.getCenterX());
    line.setStartY(c.getCenterY());
    line.setEndX(c2.getCenterX());
    line.setEndY(c2.getCenterY());
    line2.setStartX(c.getCenterX());
    line2.setStartY(c.getCenterY());
    line2.setEndX(c3.getCenterX());
    line2.setEndY(c3.getCenterY());
    line2.setVisible(true);
    line2.setStroke(Color.BLUE);
    line3.setStartX(c2.getCenterX());
    line3.setStartY(c2.getCenterY());
    line3.setEndX(c3.getCenterX());
    line3.setEndY(c3.getCenterY());
    line3.setVisible(true);
    line3.setStroke(Color.BLUE);
    line.setVisible(true);
    line.setStroke(Color.BLUE);
    c.setFill(Color.RED);
    c2.setVisible(true);
    c.setVisible(true);
    Rectangle rect = new Rectangle(100, 100, 70, 70);
    other.getChildren().addAll(line, line2, line3, c, c2, c3, rect);
    System.out.println(other.getChildren());
    image.setVisible(true);
    image.fitHeightProperty().bind(other.prefHeightProperty());
    image.fitWidthProperty().bind(other.prefWidthProperty());
    scroll.setPannable(true);
}

public void bpAction() {
    other.setPrefHeight(other.getPrefHeight() + 30);
    other.setPrefWidth(other.getPrefWidth() + 30);
}

public void bmAction() {
    other.setPrefHeight(other.getPrefHeight() - 30);
    other.setPrefWidth(other.getPrefWidth() - 30);
}
...