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

JavaFX在borderpane中访问stackpane

耿志义
2023-03-14

我的BorderPane的中心有一个名为designView的堆栈窗格(FXML定义的堆栈窗格)。我试图在designView中获得一个可拖动的窗格。如果我将该窗格添加到rootView(我的BordePane)中,一切都很好。但是,如果我尝试将其添加到designView中,如下所示:

// This works fine except the pnae is on the wrong place obviously
....
Pane p = displayField.createDraggablePane(800.0, 800.0, 400.0, 300.0);
rootView.getChildren().add(p);


// Now the pane is in the right place, but it's 'stuck'
....
rootView.setCenter(designView);
Pane p = displayField.createDraggablePane(800.0, 800.0, 400.0, 300.0);
designView.getChildren().add(p);

窗格在设计视图中显示正确,但不再可拖动。MouseEvents会触发,但窗格的位置没有更新。我认为问题在于layoutX、getSceneX、layoutXProperty等没有引用设计视图,但我如何获得它?有人能帮忙吗?

共有1个答案

李嘉胜
2023-03-14

我找到了解决办法。我没有将StackPane添加到我的BorderPane中心,而是添加了一个窗格,一切正常:-),因此我的可拖动窗格被添加到窗格,而不是添加到StackPane。

我不太明白为什么这会改变可拖动窗格的行为,但实践表明确实如此。

 类似资料:
  • 主要内容:示例,实例-2BorderPane布局顶部,底部,左,右或中心区域中的子节点。每个区域只能有一个节点。BorderPane的顶部和底部区域允许可调整大小的节点占用所有可用宽度。 左边界区域和右边界区域占据顶部和底部边界之间的可用垂直空间。 默认情况下,所有边界区域尊重子节点的首选宽度和高度。放置在顶部,底部,左侧,右侧和中心区域中的节点的默认对齐方式如下: 顶部: 底部: 左侧: 右侧: 中心: 示例 将按钮添

  • 我有一个简单的JavaFX类,对于这个问题,它的结构是这样的。 BorderPane包含包含FlowPane的StackPane。 几天来,我一直试图让StackPane填充其父级BorderPane,但似乎没有任何效果。最终结果应该是StackPane的背景设置为“红色”。 代码: 我的应用程序正在运行的照片 所以基本上这个左侧区域应该完全填充我的BorderPane的左侧,因此背景应该正确覆盖

  • 我的代码创建了一个窗口,并按照我想要的方式排列它...最初。但是,如果我最大化窗口,边框窗格的顶部和底部不会留在中心。它们漂移到左上角和左下角。 我试着禁用最大化窗口选项,但它又一次打乱了页面的外观,顶部和底部都在移动。 这是我的代码: 我昨晚才开始自学JavaFX,但似乎无法弄清楚我哪里出了问题,或者找到了解决问题的方法。 提前感谢任何建议。

  • 我在将带有3个按钮的VBox放在BorderPane右侧部分的中心时遇到问题。有没有办法在FXML或CSS中实现这一点? 更新: 这是FXML中的代码 这是CSS文件 以及应用程序的屏幕截图。我希望Vbox位于BorderPate右侧部分的中心。非常感谢您的回复!

  • 我有一个,我想把它放在BorderPane的底部并居中。我想用实现这一点。 这是我的边界窗格的底部: 完整的(没有导入):

  • 首先,我是Java的初学者。我正在尝试使用JavaFX在Java中创建一个Monopoly游戏。我在网格窗格中画了板。 我要问你们的问题是,如何将网格放在边界窗格的中心。网格窗格占据整个屏幕。我希望它在边框窗格的中心,并将其他空间用于菜单和其他窗格。 网格 边界板