我应该使用哪个 Swing 布局管理器?

Which Swing layout manager should I use?

我正在创建一个 Swing 对话框 window,如下所示:

headerfooter 区域具有固定大小。 area 1 and 2 的大小不固定。他们可以有几行内容并且行数可以增加at runtime.

以后,我可能需要添加 area 3

我应该如何使用 Swing 布局管理器来实现这个 UI?

加 1

区域1和区域2相互独立

在每一个中,我都想垂直放置几个面板。每个面板都有一行字符串。面板编号在运行时可能会有所不同。

对主布局使用 BorderLayout

  1. 将 "header" 添加到 NORTH
  2. 将 "footer" 添加到 SOUTH
  3. 创建另一个面板并将其添加到 CENTER。然后将此面板的布局管理器设置为合适的布局管理器。我们无法建议您为该面板使用什么布局管理器,因为我们不知道这两个组件区域是如何相关的。然后将 "area1" 和 "area2" 添加到此面板。

这个答案的关键是您不需要使用单一的布局管理器,您可以使用不同的布局管理器嵌套面板。

我会为这个使用 BorderLayout

  • headerPAGE_START
  • footerPAGE_END
  • area1&area2(各在一个JScrollPane)在一个JSplitPaneCENTER