我正在用Java和Swing制作纸牌游戏,但遇到了一个麻烦的问题。我有一个带有miglayout的游戏面板,似乎工作正常,但其中有7个面板,其中有成堆的纸牌,每个纸牌都有一个网格袋布局,但是正如您在下一张图片中看到的那样,排列不正确:
主面板为灰色,带有卡的面板为绿色。
创建子面板的代码在这里: https://github.com/ccokee/Solitarios/blob/master/src/pClasico.java#L166
子面板的代码在这里: https://github.com/ccokee/Solitarios/blob/master/src/pMontonC.java#L33
有人可以帮我解决这个问题吗?我一直在弄弄这个问题,但没有成功:(
答案 0 :(得分:4)
默认情况下,除非其中一个组件的GridBagLayout
值不等于0,否则weighty
将在面板中垂直(水平)居中。
这将为该组件提供面板的额外空间。阅读How to Use GridBagLayout上Swing教程中的部分,以获取更多信息。
但是,我建议一个更好的解决方案是使用垂直的BoxLayout,然后可以在最后添加“胶水”以占用额外的空间。
类似的东西:
Box box = Box.createVerticalBox();
box.add( card1 );
box.add( card2 );
...
box.add( Box.createVerticalGlue() );
另一个选择可能是使用Overlap Layout。此布局管理器使您可以将组件彼此放置。
答案 1 :(得分:0)