当前位置: 首页 > 知识库问答 >
问题:

JavaFX场景构建器:使网格窗格包装成滚动窗格,在调整大小时保持在角落

程鸿波
2023-03-14

我正在制作这个用户界面,其中显示了一个图像映射,包装成一个锚窗格,本身包装成一个滚动窗格。我想在左下角添加一个覆盖,显示坐标。当然,即使在调整视图大小和左右滚动地图的时候,这个覆盖也必须是可见的。我试图在anchorpane中使用约束,但是当向右滚动地图时,坐标字段消失了。在这里,您可以看到我的层次结构的视图和我希望字段保持的位置:场景构建器视图Thx为您的答案。

共有1个答案

慕容兴贤
2023-03-14
SplitPane
  └AnchorPane
    ├ScrollPane
    │  └... 
    └Label(etc)

为了重叠标签,我推荐上面的构造。这是因为标签在视口之外,使得视口的缩放和转换更容易。

考虑到横向滚动条不可见的情况,应该使用绑定计算标签的layouty

// These can be set in Scene Builder
anchorPane.getChildren().addAll(scrollPane, label);
AnchorPane.setTopAnchor(scrollPane, 0.0);
AnchorPane.setLeftAnchor(scrollPane, 0.0);
AnchorPane.setRightAnchor(scrollPane, 0.0);
AnchorPane.setBottomAnchor(scrollPane, 0.0);
AnchorPane.setLeftAnchor(label, 0.0);

// Bind LayoutY of Label
DoubleBinding labelLayoutYBinding = Bindings.createDoubleBinding(
        () -> scrollPane.getViewportBounds().getHeight() - label.getHeight(),
        label.heightProperty(),
        scrollPane.viewportBoundsProperty());
labelLayoutYBinding.addListener((o, ov, nv) -> label.setLayoutY(nv.doubleValue()));

如果水平的滚动条总是显示在应用程序中,那么在场景生成器中设置固定的底部偏移量比使用绑定更容易。

// This can be set in Scene Builder
AnchorPane.setBottomAnchor(label, 13.0); // Set the fixed value to ease up
 类似资料:
  • 我正在尝试构建一个包含6个窗格(作为父级添加到GridPane布局中)的简单Java项目。我必须在开始时设置窗口大小,并通过参考根布局的宽度和高度,设法将它们均匀地拆分。 但我想要他们调整大小,因为我改变了窗口的大小(使用鼠标,现在他们得到固定的大小)。 下面是我的代码:

  • 我想设置Scrollpane H和V值,但内部内容调整大小后。 一些背景-我得到了以下结构: 我附上了<代码>。setOnScroll(…) 到目前为止,一切都很好,当内容大小发生变化时,滚动条会更新,所有内容都会按预期进行调整,但我想保持或更确切地说,将滚动条位置设置为一些值,以保持缩放到上一个中点(类似于photoshop中的缩放)。在本例中,我在回调中添加了这一行来测试它: 函数本身可以工作

  • 我有一个小问题。我试图用JavaFX2.0创建一个好的GUI(可以调整大小),但我有一个小问题。我使用的是网格窗格,但当我在其中放置多个按钮时,当我将屏幕大小调整为较小尺寸时,按钮将以屏幕左侧的大小相互滑动。我可以为单元格或其他东西设置最小大小吗?我正在使用FXML进行设计。非常感谢你!

  • 我试图将乘法VBox添加到scrollpane中的gridpane(在下面的codesnippet中称为refPane)。 它在一行中添加不超过ITEMS_PER_ROW的Vbox,并在下一行中继续。也不应该有更多的行,然后ITEMS_PER_COLUM可见。问题是,如果我添加更多的ITEMS_PER_ROW*ITEMS_PER_COLUMN到网格中,而不是obingbeingscrollable

  • 基于此注释https://stackoverflow.com/a/29530135/1387524,我添加了一个ScrollPane,以便在画布移到可见区域之外时使用滚动。

  • 问题内容: 我正在寻找某种有关组织应用程序的建议。 当您拥有包含内容选择的主菜单时,请按一个按钮,则获取控制器有两个选择:a)更改当前显示主菜单的内容b)创建一个新场景并将舞台切换到该场景一 你在用什么 有什么最佳实践吗? 目前,我更喜欢a),因为我可以保持事物链接状态栏等,但这是“干净”的方式吗? 问题答案: 首先,需要考虑一些事情: 1)更改场景将取消链接到您附加到该事件处理程序的链接,并且可