Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JScrollPane不';不显示边界布局约束是否为中心?_Java_Swing_Jpanel_Jscrollpane_Border Layout - Fatal编程技术网

Java JScrollPane不';不显示边界布局约束是否为中心?

Java JScrollPane不';不显示边界布局约束是否为中心?,java,swing,jpanel,jscrollpane,border-layout,Java,Swing,Jpanel,Jscrollpane,Border Layout,开发游戏已经有一段时间了,现在正在重新开发GUI,或者至少正在尝试。有一个巨大的问题,就是无法调整框架的大小(没有问题),因为我不太了解布局管理器。几个项目之后,是时候回来做更多的游戏了,我遇到了一个问题 主框架的基本布局是mainPane,包含一个gameScrollPane和一个controlPanel。滚动窗格是滚动窗格,控制面板是普通面板。滚动窗格包含主游戏面板 由于我希望滚动窗格占据大部分屏幕,而控制面板占据较小的较低区域,这与许多类似Sim卡的游戏非常相似,因此选择了主窗格的边框布局

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

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

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

为了演示这一点,我创建了一个快速视频。。。

如您所见,当我将NORTH的值更改为CENTER并重新运行时,它好像不在那里

任何人谁可以看到一个明确的第二个问题,我可以开始后,这个问题解决了另一个问题的奖金点

谢谢你抽出时间来读这篇文章

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


Rel

我无法播放视频。它已经缓冲很久了

我的猜测是滚动窗格实际上占据了中心;只是你的游戏面板没有显示出来

您的游戏面板需要为
getPreferredSize()
返回合理的值

更新


您可能需要做的另一件事是让您的游戏面板实现可滚动的界面。然后,您可以覆盖
getScrollableTracksViewportWidth
…height
以返回
true
,这样您的面板将被强制设置为滚动窗格的尺寸。

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

我的猜测是滚动窗格实际上占据了中心;只是你的游戏面板没有显示出来

您的游戏面板需要为
getPreferredSize()
返回合理的值

更新


您可能需要做的另一件事是让您的游戏面板实现可滚动的界面。然后,您可以覆盖
getScrollableTracksViewportWidth
…height
以返回
true
,这样您的面板将被强制设置为滚动窗格的尺寸。

如果您先发布了一些代码,那么您可能会得到一个非常快速的答案。幸运的是,你在评论中贴了一个链接到另一个回复

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

问题是您正在将levelMaker和personMover添加到主窗格中,没有任何限制。然后这些将吹走你为中心设置的任何东西。。。在本例中,显示先前设置的gameScrollPane


这就是为什么你看到它在北方,而不是在中心。

如果你发布了一些代码开始,那么你可能会得到一个非常快速的答案。幸运的是,你在评论中贴了一个链接到另一个回复

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

问题是您正在将levelMaker和personMover添加到主窗格中,没有任何限制。然后这些将吹走你为中心设置的任何东西。。。在本例中,显示先前设置的gameScrollPane


这就是为什么你看到的是北面而不是中央。

如果是这样,滚动条应该仍然显示,不是吗?它返回1400 x 1000的尺寸。这不合理吗?滚动条只有在被激活时才会显示(在策略中设置)。但是1400 x 1000是一个合理的尺寸,并且它可能比您的GUI更大,因此应该强制显示它。我的强烈建议是给我们一些源代码!重新更新:当然,虽然面板(客户端)应该比滚动面板大,否则它会失败吗?我想我还没有完全理解你的意思,你能再详细一点吗?我的意思是游戏面板比客户端大(我猜),如果政策允许的话,这将强制显示滚动条。如果什么都没有显示。。。嗯,某处有一只虫子!恐怕你的视频帮不上忙,至少对我没有帮助!好吧,我用它打你。我得警告你,这是一只野兽。。。正在更新svn。。。就在那里。在那里你会找到3个相关的java文件。如果是这样的话,滚动条应该仍然会显示,不是吗?它返回1400 x 1000的尺寸。这不合理吗?滚动条只有在被激活时才会显示(在策略中设置)。但是1400 x 1000是一个合理的尺寸,并且它可能比您的GUI更大,因此应该强制显示它。我的强烈建议是给我们一些源代码!重新更新:当然,虽然面板(客户端)应该比滚动面板大,否则它会失败吗?我想我还没有完全理解你的意思,你能再详细一点吗?我的意思是游戏面板比客户端大(我猜),如果政策允许的话,这将强制显示滚动条。如果什么都没有显示。。。嗯,某处有一只虫子!恐怕你的视频帮不上忙,至少对我没有帮助!好吧,我用它打你。我得警告你,这是一只野兽。。。正在更新svn。。。就在那里。在那里你会找到3个相关的java文件。+1用于找到“正确”的问题,比我还快:)你是co