我有一个关于我正在处理的 Uni-project 的问题。我们必须创建一个游戏,其中我们有一个由瓷砖组成的板,您应该能够通过点击来旋转这些瓷砖。瓷砖应始终适合网格,并且网格应随窗口调整大小。现在我创建了一个“TileView”类,它扩展了 ImageView 以获得与瓷砖图案匹配的图片。然后我有 TileGrid,它扩展了 GridPane,它应该由宽度*高度的 tileviews 组成。这个 GridPane 在一个 BorderPane 中,这就构成了场景。不幸的是,我不能真正把代码放在这里,因为我们有严格的抄袭规则(如果有人看到我的代码并复制它,我也会下台)。因此,我为宽度和高度创建了 2 个 for 循环并创建了一个新的 TileView 并将 PreserveRatio 设置为 true,然后执行以下操作:setRowIndex(temp, i);setColumnIndex(temp, j);super.getChildren().add(temp);这是在类 TileGrid 中。然后我将它添加到边距插入 100 的 BorderPane 中,这就是发生的情况:但是现在我遇到了将 TileViews 拟合到网格大小并使它们随窗口调整大小的问题。我试过(“temp”是刚刚创建的 ImageView,因为我把它们放在 TileGrid 中):temp.fitWidthProperty().bind(prefWidthProperty());temp.fitHeightProperty().bind(prefHeightProperty());但是我的单个 ImageViews 是巨大的。这占满了我的整个屏幕。我尝试了很多东西,搜索了几个小时,但从未达到我想要的效果,所以我真的希望有人可以帮助我或即使没有我的代码也能给我提示。
2 回答
胡说叔叔
TA贡献1804条经验 获得超8个赞
由于您无法提供任何代码,我将尝试为您提供使用步骤,我希望它可能会有所帮助
首先BorderPane
,GridPane
将它们的大小调整到窗口,您遇到了一个问题,即调整ImageView
s的大小以使其成为可能可调整大小,您必须将bind
它们的大小调整为场景的大小,并考虑您想要的网格的行数和列数,
假设您有 2 列,因此图像是场景的 50%
imageView.fitWidthProperty().bind(scene.getWidthProperty().divide(2));
注意:我不确定这一行的语法我有点忙抱歉
添加回答
举报
0/150
提交
取消