有没有办法在Java游戏中调整组件的大小?

有没有办法在Java游戏中调整组件的大小?,java,user-interface,netbeans,graphics,components,Java,User Interface,Netbeans,Graphics,Components,我已经用netbeans做了一个专注对游戏。这里有更多关于这个游戏的细节 在游戏开始之前,用户可以选择游戏版本计算机vs人类,人类vs人类,他们的名字和计算机在计算机vs人类版本中必须记住的卡的内存,还可以选择尺寸和小丑。他可以选择指定的尺寸和小丑或他自己喜欢的尺寸列、行、小丑。 当然,我对行和列有一个限制:52。但是当用户使用例如52x52或50x3作为游戏的维度时,使用setresizeable根本没有帮助。。。顺便说一句,它看起来很可怕,图像是73x97像素 我的组件不是按钮,它们是我自

我已经用netbeans做了一个专注对游戏。这里有更多关于这个游戏的细节

在游戏开始之前,用户可以选择游戏版本计算机vs人类,人类vs人类,他们的名字和计算机在计算机vs人类版本中必须记住的卡的内存,还可以选择尺寸和小丑。他可以选择指定的尺寸和小丑或他自己喜欢的尺寸列、行、小丑。 当然,我对行和列有一个限制:52。但是当用户使用例如52x52或50x3作为游戏的维度时,使用setresizeable根本没有帮助。。。顺便说一句,它看起来很可怕,图像是73x97像素

我的组件不是按钮,它们是我自己的gui类中关于卡的对象,并且与另一个包中的卡的逻辑有联系。所以我应该尝试gridbaglayout而不是gridbaglayout?Gridbadlayout可能是一个真正令人头痛的问题,因为我已经将它用于我的单选按钮

现在我使用的是gridlayout,但当我设置EnabledTrue以便EG10行可以实际显示在屏幕上时,图形卡将保持较小,并且不会填充整个组件

我这是什么意思


我应该调整所有组件的大小,还是限制太大,我应该将其缩小?

为什么不计算最佳大小?计算一行中卡片的最大值。然后估计一张卡的最小图标大小,以便任何人都可以阅读它。然后您只需计算:屏幕尺寸/mininmalCardSize。然后您可以从用户那里调整所需的大小。我会这样做的。但是我想使用空布局。

当您需要具有所有相同尺寸的组件时,GridLayout通常很好。我建议您只需将您的卡片网格放在JScrollPane中

或者,如果网格尺寸较大时游戏区域无法滚动,您可以查看此问题的答案:

另一种可能性是扩展GridLayout,以便它尝试保持卡的固定纵横比。为此,您显然需要能够正确绘制不同尺寸的卡片