有啥方法可以在我的 Java 游戏上调整我的组件大小?
Posted
技术标签:
【中文标题】有啥方法可以在我的 Java 游戏上调整我的组件大小?【英文标题】:Any way to resize my components on my Java Game?有什么方法可以在我的 Java 游戏上调整我的组件大小? 【发布时间】:2013-07-22 14:18:51 【问题描述】:我使用 netbeans 制作了一个专注配对游戏。有关游戏的更多详细信息,请点击此处 http://en.wikipedia.org/wiki/Concentration_(game).
在游戏开始之前,用户可以选择游戏版本(电脑 vs 人类,人类 vs 人类),他们的名字和电脑在电脑 vs 人类版本中必须记住的卡片记忆,并且还可以选择尺寸和百搭。他可以选择指定的尺寸和百搭或他自己喜欢的尺寸(列、行、百搭)。 当然,我对行和列有限制:52。但是当用户使用例如 52x52 或 50x3 作为游戏的尺寸时,使用 setResizable 完全没有帮助......它看起来很糟糕(顺便说一下,图像是 73x97 像素) .
我的组件不是按钮,它们是我自己的关于卡片的 gui 类的对象(并且与另一个包中卡片的逻辑有联系)。所以我应该尝试使用 gridbaglayout 而不是 gridlayout? Gridbadlayout 可能是一个真正令人头疼的问题,因为我已经将它用于我的单选按钮。
现在我正在使用 gridlayout,但是当我设置了 setEnabled(true) 时,例如 10 行实际上适合屏幕,图形卡将保持较小而不是“填充”整个组件...
http://postimg.org/gallery/53g9ag0i/667f8271/我的意思
我应该调整所有组件的大小还是限制太大而我应该把它变小?
【问题讨论】:
【参考方案1】:GridLayout
通常在您想要具有所有相同尺寸的组件时很好。我建议简单地将您的卡片网格放入JScrollPane
。
或者,如果在网格尺寸较大时让游戏区域可滚动是不可接受的,您可以查看此问题的答案:How to lock aspect ratio of a gridLayout in Java?。
另一种可能性是扩展GridLayout
,以便尝试保持卡片的固定纵横比。 (为此,您显然需要能够以不同尺寸正确绘制自己的卡片)。
【讨论】:
【参考方案2】:为什么不计算最佳尺寸?计算一排卡片的最大值是多少。然后估计卡片的最小图标大小,以便任何人都可以阅读它。然后你只需要计算:ScreenDimensions / miniminalCardSize。然后您可以从用户那里调整所需的大小。我就是这样做的。但我想使用 Null 布局。
【讨论】:
以上是关于有啥方法可以在我的 Java 游戏上调整我的组件大小?的主要内容,如果未能解决你的问题,请参考以下文章