哪种布局和容器适合制作像Tiled这样的GUI?

时间:2012-06-29 19:25:54

标签: java swing user-interface layout containers

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

我的问题是你会使用哪个布局管理器来看起来像Tiled。我非常喜欢这种感觉,当我制作这个工具时,我想让它在移动组件时采取类似行动。

以下是我所做的并且正在思考:

  • 拥有一个包含菜单栏和内容窗格的JFrame。 (完美的工作原理)
  • 内容窗格是BorderLayout。 (完美的工作原理)
  • 内容窗格内部是一个工具栏,就像下面的工具栏一样。 (完美的工作原理)
  • 在工具栏中,我将有按钮显示为图像,也就是图标,并且可以像红色圆圈一样点击
  • 内容窗格将包含两个J面板
  • 第一个J面板将像黑色圆圈一样,将包含我将在那里绘制的地图
  • 第二个J面板将包含图层,历史记录,地图集和图像等组件
  • 第一个J Panel将是Center,第二个J Panel将是East

以下是我的问题:

  • 当我启动GUI时,几乎没有任何正确的JPanel,并且似乎无法让它更广泛,除非我有像JList或其他东西的实际内容。

我要求大家指导你做什么事情。虽然我已经制作了GUI之前我没有足够的经验知道在选择布局管理器时如何真正处理这个问题以及如何在这种特殊情况下使用它。 我需要的只是基本信息,说明如何操作以及为什么,不需要任何代码。谢谢!

Tiled

My Program like Tiled

2 个答案:

答案 0 :(得分:4)

我建议使用MigLayout。它是一个非常强大且非常受支持的第三方布局管理器。已经(迄今为止不成功)请愿将其包含在Java中。 MigLayout将允许您做任何您想做的事情,而不必做出任何妥协,并使用更少的代码。我可以继续谈论它,但如果你只是浏览他们的演示和示例代码,你会亲眼看到。

答案 1 :(得分:3)

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