Gridbag 布局未正确对齐
Gridbag layout not aligning properly
我正在使用 java 和 swing 开发单人纸牌游戏,但我遇到了一个烦人的问题。我有一个带有 miglayout 的游戏面板,看起来工作正常,但在它里面还有 7 个面板,上面有成堆的纸牌,每个面板都有一个 gridbaglayout,但正如你在下一张图片中看到的那样,纸牌堆未正确对齐:
主面板是灰色的,带有卡片的面板是绿色的。
创建子面板的代码在这里:
https://github.com/ccokee/Solitarios/blob/master/src/pClasico.java#L166
子面板的代码在这里:
https://github.com/ccokee/Solitarios/blob/master/src/pMontonC.java#L33
有人可以帮我解决这个问题吗?我已经弄乱了很长时间 运行 但没有成功 :(
默认情况下,GridBagLayout
将使组件在面板中垂直(和水平)居中,除非其中一个组件的 weighty
值不等于 0。
这将为该组件提供额外的 space 面板。阅读 How to Use GridBagLayout 上的 Swing 教程部分了解更多信息。
但是,我建议更好的解决方案是使用垂直 BoxLayout,然后您可以在末尾添加 "glue" 以占用额外的 space.
类似于:
Box box = Box.createVerticalBox();
box.add( card1 );
box.add( card2 );
...
box.add( Box.createVerticalGlue() );
另一种选择可能是使用 Overlap Layout。此布局管理器允许您将组件放置在另一个之上。
我相信我在代码中发现了问题。
在classpClassico.java
中,尝试更改第296行:
interior.add(MontonesJuego[i], "cell " + (i+4) + " 3");
用这个:
interior.add(MontonesJuego[i], "cell " + (i+5) + " 3");
这是我的环境:
希望对您有所帮助!
我正在使用 java 和 swing 开发单人纸牌游戏,但我遇到了一个烦人的问题。我有一个带有 miglayout 的游戏面板,看起来工作正常,但在它里面还有 7 个面板,上面有成堆的纸牌,每个面板都有一个 gridbaglayout,但正如你在下一张图片中看到的那样,纸牌堆未正确对齐:
主面板是灰色的,带有卡片的面板是绿色的。
创建子面板的代码在这里: https://github.com/ccokee/Solitarios/blob/master/src/pClasico.java#L166
子面板的代码在这里: https://github.com/ccokee/Solitarios/blob/master/src/pMontonC.java#L33
有人可以帮我解决这个问题吗?我已经弄乱了很长时间 运行 但没有成功 :(
默认情况下,GridBagLayout
将使组件在面板中垂直(和水平)居中,除非其中一个组件的 weighty
值不等于 0。
这将为该组件提供额外的 space 面板。阅读 How to Use GridBagLayout 上的 Swing 教程部分了解更多信息。
但是,我建议更好的解决方案是使用垂直 BoxLayout,然后您可以在末尾添加 "glue" 以占用额外的 space.
类似于:
Box box = Box.createVerticalBox();
box.add( card1 );
box.add( card2 );
...
box.add( Box.createVerticalGlue() );
另一种选择可能是使用 Overlap Layout。此布局管理器允许您将组件放置在另一个之上。
我相信我在代码中发现了问题。
在classpClassico.java
中,尝试更改第296行:
interior.add(MontonesJuego[i], "cell " + (i+4) + " 3");
用这个:
interior.add(MontonesJuego[i], "cell " + (i+5) + " 3");
这是我的环境:
希望对您有所帮助!