javafx-8 - 如何使 javafx 8 滚动 Pane 的内容居中

标签 javafx-8

我有一个 ScrollPane,它包含一个 GridPane,它包含一个 ImageView,它包含一个 Image。我想要的是图像在 GridPane 中居中。

如果没有 ScrollPane,我可以使用 setAlignment(Pos.TOP_CENTER) 完成此操作,但是一旦我将 GridPane 添加到 ScrollPane,图像就会显示在左上角。

如何让 ScrollPane 使用 setAlignment() 值或手动居中图像?

---示例编辑---

没有滚动 Pane 的代码:

public class ImageDB extends Application
{
  @Override
  public void start(Stage root)
  {
    Image image = new Image("0.jpg");
    ImageView view = new ImageView();
    view.setImage(image);

    GridPane grid = new GridPane();
    grid.getChildren().add(view);

    grid.setAlignment(Pos.TOP_CENTER);

    BorderPane border = new BorderPane();
    border.setCenter(grid);

    root.setScene(new Scene(border));
    root.setMaximized(true);
    root.show();
  }
}

结果:
https://i.imgur.com/eWvBQy6.png

带有滚动 Pane 的代码:
public class ImageDB extends Application
{
  @Override
  public void start(Stage root)
  {
    Image image = new Image("0.jpg");
    ImageView view = new ImageView();
    view.setImage(image);

    ScrollPane scroll = new ScrollPane();
    scroll.setContent(view);

    GridPane grid = new GridPane();
    grid.getChildren().add(scroll);

    grid.setAlignment(Pos.TOP_CENTER);

    BorderPane border = new BorderPane();
    border.setCenter(scroll);

    root.setScene(new Scene(border));
    root.setMaximized(true);
    root.show();
  }
}

结果:
https://i.imgur.com/1aJDX4m.png

最佳答案

imageHolder.minWidthProperty().bind(Bindings.createDoubleBinding(() -> scroll.getViewportBounds().getWidth(), scroll.viewportBoundsProperty()));确实成功了,它似乎有一些问题(例如,有时显示错误的滚动条/闪烁的内容等)。

我后来发现一个简单的scroll.setFitToWidth(true); (和/或 scroll.setFitToHeight(true); )也可以通过滚动 Pane 保持内容大小,但没有上述问题!

关于javafx-8 - 如何使 javafx 8 滚动 Pane 的内容居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30687994/

相关文章:

java - 有没有更短的方法来编写这个 FXML 摘录?

java - ProgressIndicator(节点)作为鼠标光标?

java - 在 JavaFX 8 中管理多线程的最佳方式是什么?

checkbox - 我的CheckBox中的下划线在哪里?

java - ChangeListener 没有给出正确的旧值

相同大小的 JavaFX 按钮

java - 尝试将项目添加到对话框,但它们没有显示

java - 编辑场景生成器生成模型

java - MultipleSelectionModel:哪个列表更改事件可以从 selectedIndices 中获得?

java - 内容出现在自定义单元格工厂的空行中