我使用netbeans制作了一个浓度对游戏。点击此处了解更多游戏详情http://en.wikipedia.org/wiki/Concentration_(游戏)。
在游戏开始之前,用户可以选择游戏版本(计算机对人类,人类对人类)、他们的名字和计算机在计算机对人类版本中必须记住的卡的内存,还可以选择尺寸和小丑。他可以选择指定的尺寸和小丑,也可以选择自己喜欢的尺寸(列、行、小丑)。当然,我对行和列有一个限制:52。但当用户使用例如52x52或50x3作为游戏尺寸时,使用setResizable根本没有帮助。。。它看起来很可怕(顺便说一句,图像是73x97像素)。
我的组件不是按钮,它们是我自己的关于卡的gui类的对象(并且与另一个包中的卡的逻辑有连接)。所以我应该尝试gridbglayout而不是gridayout?网格布局可能真的很头疼,因为我已经把它用于我的单选按钮了。
现在我使用网格布局,但当我设置Enabled(true)时,例如10行实际上可以放在屏幕上,图形卡会保持较小,不会"填充"整个组件。。。
http://postimg.org/gallery/53g9ag0i/667f8271/我在这里的意思是
我应该调整所有组件的大小,还是限制太大,我应该缩小它?
GridLayout
在需要具有所有相同尺寸的组件时通常是可以的。我建议简单地将你的卡片网格放在JScrollPane
中。
或者,如果在网格尺寸较大时让游戏区域可滚动是不可接受的,你可以看看这个问题的答案:如何在Java中锁定网格布局的纵横比?。
还有一种可能性是扩展GridLayout
,以便它试图保持卡的固定纵横比。(为此,你显然需要能够正确绘制不同尺寸的卡片)。
为什么不计算最佳大小?计算一行卡片的最大值。然后估计卡片的最小图标大小,以便任何人都能阅读。然后你只需要计算:ScreenDimensions/mininmalCardSize。然后您可以从用户那里调整所需的大小。我会这样做。但我想使用空布局。