1

开发游戏已经有一段时间了,目前正在重新使用 GUI,或者至少正在尝试。有无法调整框架大小(没有问题)的巨大问题,因为我不太了解布局管理器。几个项目之后,是时候回来做更多的游戏了,我遇到了一个问题......

主框架的基本布局是mainPane,包含一个gameScrollPane和一个controlPanel。滚动面板是滚动面板,控制面板是普通面板。滚动窗格包含主游戏面板。

由于我希望滚动窗格占据大部分屏幕,控制面板占据较小的下部区域,这与许多类似模拟游戏的游戏非常相似,因此选择了主窗格的边框布局。我添加了滚动窗格并设置了约束 CENTER,添加了控制面板并约束了 SOUTH。这没有显示滚动窗格,所以我尝试了不同的约束,似乎只有当我将滚动窗格约束设置为 North 时,它才会显示。

为了证明这一点,我制作了一个快速视频... http://screenjel.ly/q5RjczwZjH8

如您所见,当我将 NORTH 的值更改为 CENTER 并重新运行时,就像它不存在一样!

任何可以看到明确的第二个问题的人的奖励积分,我可以在这个问题解决后开始另一个问题!

感谢您抽出宝贵时间阅读本文。

提前感谢您的任何想法或想法:)

相对

4

2 回答 2

3

如果您首先发布了一些代码,那么您可能已经得到了一个非常快速的答案。幸运的是,您在评论中发布了指向其他回复的链接。

setContentPane() 的东西很奇怪,尤其是在对它做了一些事情之后会被清除掉。然而,这不是你的问题。

问题是您正在向 mainPane 添加 levelMaker 和 personMover 权限,没有任何限制。然后,这些将吹走您为 CENTER 设置的任何内容......在这种情况下,之前设置的 gameScrollPane。

这就是为什么您在 NORTH 而不是 CENTER 中看到它的原因。

于 2010-01-05T00:50:44.193 回答
1

我无法显示视频。它已经缓冲了很多年。

我的猜测是滚动窗格实际上填充了中心;只是您的游戏面板没有显示。

您的游戏面板需要为getPreferredSize().

更新

您可能想做的另一件事是让您的游戏面板实现Scrollable接口。然后您可以覆盖getScrollableTracksViewportWidth...height返回true,以便您的面板将被强制为滚动窗格的尺寸。

于 2010-01-04T23:27:46.283 回答