建议Java GUI组件布局策略

时间:2014-03-03 19:28:52

标签: java user-interface

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

我正在实现类似Scrabble的算法,我想编写一个用户可以与算法竞争的GUI。我对GUI的体验是有限的,如果有人可以建议我可以关注的有用的组件子集,我试图避免一个很大的学习曲线。

我想并排展示两个比赛场地。每个游戏区域包含一个板和一个瓷砖支架。可以将支架上的瓷砖拖放到电路板上。

显然,基本组件是瓷砖,它只是一个显示字母的正方形。瓷砖支架和电路板都是瓷砖容器(不同尺寸的网格)。游戏区域各自容纳两个瓦片容器,并允许从一个容器拖放到另一个容器。

两个游戏区域的布局是:顶部的板,底部的瓷砖支架,以及它们之间的一些中性空间。

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

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

感谢任何建议。

1 个答案:

答案 0 :(得分:1)

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

  • 带有ImageIcons的FlowLayout的JPanel,其中包含拼字游戏磁贴的图片,此JPanel将添加到BorderLayout JPanel的南部位置。

  • 另一个带有自定义类的JPanel,称为ScrabbleBoard,它扩展了JComponent。在这里,您可以扩展paintComponent并按照您的意愿绘制板,可能会使用获取宽度和高度,以便您可以绘制一块可以扩展到可用于组件的空间的板。此自定义JComponent将添加到BorderLayout JPanel的中心位置。

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