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

JavaFX将Gridpane放入BorderPane

高云瀚
2023-03-14

首先,我是Java的初学者。我正在尝试使用JavaFX在Java中创建一个Monopoly游戏。我在网格窗格中画了板。

我要问你们的问题是,如何将网格放在边界窗格的中心。网格窗格占据整个屏幕。我希望它在边框窗格的中心,并将其他空间用于菜单和其他窗格。

网格

public class BordView extends GridPane {
private GridPane spelbord = new GridPane();

public BordView() {
    initNodes();
    layoutNodes();
}

private void initNodes(){
}

private void layoutNodes(){
    RowConstraints rowsEdge = new RowConstraints();
    rowsEdge.setPercentHeight(14);
    RowConstraints rowsMid = new RowConstraints();
    rowsMid.setPercentHeight(8);

    ColumnConstraints colEdge = new ColumnConstraints();
    colEdge.setPercentWidth(14);

    ColumnConstraints colMid = new ColumnConstraints();
    colMid.setPercentWidth(8);

    this.getColumnConstraints().addAll(colEdge, colMid,
            colMid, colMid, colMid, colMid, colMid, colMid, colMid, colMid, colEdge);
    this.getRowConstraints().addAll(rowsEdge, rowsMid,
            rowsMid, rowsMid, rowsMid, rowsMid, rowsMid, rowsMid, rowsMid, rowsMid, rowsEdge);

    this.setGridLinesVisible(true);
}

边界板

public class GameView extends BorderPane {
BorderPane borderpane = new BorderPane();
public GameView() {
    layoutNodes();

}
private void layoutNodes() {
    borderpane.setCenter(BordView);
}

共有1个答案

经博延
2023-03-14

根据目前发布的信息,我只能做出一个有根据的猜测:

您正在将< code>BorderPane用于组合和继承。很可能< code>borderpane从未添加到场景图中。您应该将内容添加到< code >游戏视图本身:

this.setCenter(BordView);

而不是

borderpane.setCenter(BordView);

但我甚至不知道你从哪里得到的<code>BordView</code>。。。

另外,也许你根本不需要继承。

BTW:如果在一个< code>BorderPane中除了中心没有其他元素,它将填充整个< code>BorderPane。

来自 javadoc

如果可调整大小,[中心节点]将被调整大小,以填充顶部、底部、左侧和右侧节点之间的边框窗格的中心。

 类似资料:
  • 我已经在我的游戏中实现了拖放功能,但到目前为止,我只能“拖放”到硬编码的位置。如图所示: 我想要的是: 当船舶被丢弃时,它的x、y值(相对于GridPane)被保存,或者 飞船掉落到的细胞被保存。 我的setOnDragDropped事件在此处处理: 我觉得这应该是一个简单的鼠标悬停事件或类似的事情,但我不知道该怎么做。 编辑:下面类的完整代码: }

  • 主要内容:示例,示例2GridPane通常用于布局:第一列上的只读标签的输入表单和第二列上的输入字段。 GridPane可以在行,列或单元格级别指定约束。 例如,我们可以设置包含输入文本字段的第二列,以在窗口调整大小时调整大小。 示例 以下代码演示使用GridPane布局的简单表单应用程序。它有以下布局。 完整的代码实现如下所示 - 上面的代码生成以下结果。 示例2 以下是一个实现登录窗口的代码 - 上面的代码生成以下

  • 嗨,我目前正在玩JavaFX中的GridPane,偶然发现了一个问题...我想创建一个包含三行的布局,其中中间一行增长并占用所有可用空间,但我就是无法让它工作。中间行变得太大,并将窗口下方的底部行“推”到不再可见的位置...我如何使底部行始终在底部,让中间行占用中间的可用空间,但不能再这样了...我将在下面粘贴我的代码。 谢啦! (注意:为清晰起见,代码略有改动,但工作方式相同) 更新!添加“最小

  • 问题:我混淆了vbox和gridpane。。通常,当您可以使用vbox时,您也可以使用包含1列和n行的gridPane,因此我不确定何时使用每一列和它们之间的差异。 事实: > 我知道网格窗格有n行和n列。 我知道vbox只会垂直列出组件。(n行1列) 困惑:当我想垂直列出40-50个(水平框或其他组件)时,我不知道应该选择哪一个,因为有时我会看到人们将这些组件作为子组件添加到vbox中,而其他人

  • 问题内容: 我正在尝试做一些非常简单的事情。我想在表中特定行的列中放置一个图标。如果是文件夹,则显示文件夹图标。如果是文件,则显示文件图标。 有人知道如何在JavaFX 2中执行此操作吗? 我已经尝试了很多事情,这似乎应该很简单,或者至少是某个地方的例子。 问题答案: 好吧,我有一个巨大的假时刻。原来我的图片网址路径错误。 我确实找到了一个网站,该网站提供了为表添加元素的绝佳示例。这帮助我了解了一

  • 大家好! 我有一个简单的问题:我正在使用FXML文件,我已经做了这样的布局: 使用此层次结构:(顶部GridPane控制器被高亮显示-它位于VBox中) 我的问题是,我在ScrollPane(在另一个GridPane容器内)内动态地向GridPane添加行;我不能添加超过3列(显然是Vbox容器的大小),但是如果我删除滚动窗格,我可以添加尽可能多的行但是行正在消失,因为它们在Vbox/GridPa