我应该使用哪个 Swing 布局管理器?
Which Swing layout manager should I use?
我正在创建一个 Swing 对话框 window,如下所示:
header
和 footer
区域具有固定大小。 area 1 and 2
的大小不固定。他们可以有几行内容并且行数可以增加at runtime
.
以后,我可能需要添加 area 3
。
我应该如何使用 Swing 布局管理器来实现这个 UI?
加 1
区域1和区域2相互独立
在每一个中,我都想垂直放置几个面板。每个面板都有一行字符串。面板编号在运行时可能会有所不同。
对主布局使用 BorderLayout
。
- 将 "header" 添加到
NORTH
。
- 将 "footer" 添加到
SOUTH
。
- 创建另一个面板并将其添加到
CENTER
。然后将此面板的布局管理器设置为合适的布局管理器。我们无法建议您为该面板使用什么布局管理器,因为我们不知道这两个组件区域是如何相关的。然后将 "area1" 和 "area2" 添加到此面板。
这个答案的关键是您不需要使用单一的布局管理器,您可以使用不同的布局管理器嵌套面板。
我会为这个使用 BorderLayout
:
header
在 PAGE_START
footer
在 PAGE_END
area1
&area2
(各在一个JScrollPane
)在一个JSplitPane
在CENTER
我正在创建一个 Swing 对话框 window,如下所示:
header
和 footer
区域具有固定大小。 area 1 and 2
的大小不固定。他们可以有几行内容并且行数可以增加at runtime
.
以后,我可能需要添加 area 3
。
我应该如何使用 Swing 布局管理器来实现这个 UI?
加 1
区域1和区域2相互独立
在每一个中,我都想垂直放置几个面板。每个面板都有一行字符串。面板编号在运行时可能会有所不同。
对主布局使用 BorderLayout
。
- 将 "header" 添加到
NORTH
。 - 将 "footer" 添加到
SOUTH
。 - 创建另一个面板并将其添加到
CENTER
。然后将此面板的布局管理器设置为合适的布局管理器。我们无法建议您为该面板使用什么布局管理器,因为我们不知道这两个组件区域是如何相关的。然后将 "area1" 和 "area2" 添加到此面板。
这个答案的关键是您不需要使用单一的布局管理器,您可以使用不同的布局管理器嵌套面板。
我会为这个使用 BorderLayout
:
header
在PAGE_START
footer
在PAGE_END
area1
&area2
(各在一个JScrollPane
)在一个JSplitPane
在CENTER