gpt4 book ai didi

java - 关于 Java GUI 组件布局策略的建议

转载 作者:行者123 更新时间:2023-12-01 13:19:33 24 4
gpt4 key购买 nike

我希望有人能为以下 Java GUI 提供策略:

我正在实现一个类似拼字游戏的算法,我想编写一个 GUI,用户可以在其中与该算法竞争。我在 GUI 方面的经验有限,如果有人可以建议我可以重点关注的有用组件子集,我会尽力避免出现较大的学习曲线。

我想并排显示两个游戏区域。每个游戏区域都包含一 block 棋盘和一个牌架。可以将支架上的图 block 拖放到棋盘上。

显然,基本组件是图 block ,它只是一个显示字母的正方形。瓦架和板都是瓦容器(不同大小的网格)。每个游戏区域都包含两个图 block 容器,并允许从一个容器拖放到另一个容器。

两个游戏区域的布局是:棋盘在上,棋子架在下,中间有一些中立的空间。

窗口的布局只是并排显示两个播放区域。

也许天真地,在我看来我不需要太多。但事实证明,找到合适的作品是一项艰巨的任务。

如有任何建议,我们将不胜感激。

最佳答案

具有 GridLayout、1 行、2 列的顶级 JPanel 将为您创建一个具有两个均匀分割区域的面板。之后,您可以为每一侧添加另一个 JPanel(只需顺序添加它们),并且这两个 JPanel 可以有一个 BorderLayout。对于这两个 BorderLayout JPanel,您可以添加以下内容:

  • 具有 ImageIcons FlowLayout 的 JPanel,其中包含拼字游戏图 block 的图片,并且此 JPanel 将添加到 BorderLayout JPanel 上的南位置。

  • 另一个带有自定义类的 JPanel,您将创建名为 ScrabbleBoard 的扩展 JComponent。在这里,您可以扩展paintComponent并按照您希望的方式绘制板,可能会利用获取宽度和高度,以便您可以绘制一个可缩放到组件可用空间的板。此自定义 JComponent 将添加到 BorderLayout JPanel 的中心位置。

添加到 BorderLayout 中心位置的组件会尝试贪婪并占用尽可能多的空间,而侧面的组件则不会,因此对于需要小型导航或菜单控件的 UI 来说,它通常是一个不错的选择区域,以及更大的区域来查看被视为主图形的内容。

关于java - 关于 Java GUI 组件布局策略的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22155532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com