4

我打算使用名为Tiled的程序,但决定不使用,因为它会将所有内容都变成块并限制了一点自由。

我的问题是你会使用哪个布局管理器来制作看起来像 Tiled 的东西。我真的很喜欢这种感觉,当我制作这个工具时,我希望它在我移动组件时也能起到类似的作用。

这是我所做的和正在思考的:

  • 有一个包含菜单栏和内容窗格的 JFrame。(完美的自动取款机)
  • 内容窗格是一个 BorderLayout。(完美的自动取款机)
  • 内容窗格内部是一个工具栏,如下所示。(完美的自动取款机)
  • 在工具栏中,我将有按钮显示为图像,也就是图标,并且可以像红色圆圈一样单击
  • 内容窗格将包含两个 J 面板
  • 第一个 J 面板将像黑色圆圈一样,将包含我将在那里绘制的地图
  • 第二个 J 面板将包含图层、历史、地图集和图像等组件
  • 第一个 J 面板将是中心,第二个 J 面板将是东

这是我的问题:

  • 当我启动 GUI 时,我几乎没有得到任何正确的 JPanel,并且似乎无法让它变得更宽,除非我在其中包含 JList 之类的实际内容。

我要求你们都指导我你会做什么。虽然我之前制作过 GUI,但在选择布局管理器以及如何在这种特殊情况下准确使用它时,我还没有足够的经验知道如何真正处理这个问题。我所需要的只是有关您将如何做以及为什么做的基本信息,不需要任何代码。谢谢!

平铺

我的程序像 Tiled

4

2 回答 2

4

我建议使用MigLayout。它是一个非常强大且得到很好支持的第 3 方布局管理器。已经有(迄今为止没有成功)将它包含在 Java 中的请愿书。MigLayout 将允许您做任何您想做的事情,而无需做出任何妥协,并且使用更少的代码。我可以继续说下去,但是如果您只是浏览他们的演示和示例代码,您将自己看到。

于 2012-06-29T19:37:06.427 回答
3

让您的 JPanel 成为 JPanel 的子类并覆盖其 getPreferredSize() 方法,返回大多数(但不是全部)布局管理器都会尊重的适当大小。

于 2012-06-29T20:02:04.333 回答