2012-01-04 127 views
2

我已经知道我希望我的图形看起来如何,但是我一直在使用LayoutManagers搞了一会儿,似乎找不到能够很好地工作的组合。Java布局管理器建议

以下是设置: 1个包含2个JScrollPanes的JFrame。 ScrollPane1获得30%的JFrame垂直空间。 ScrollPane2获得JFrame垂直空间的70%。

每个JScrollPane都有:1个位于ScrollPane顶部中间的JLabel,1-4个位于滚动条底部的JButton以及每个滚动条中间的许多JCheckBox。

理想的情况下它看起来象下面这样: http://i.imgur.com/f7KsC.jpg

我的问题是:你会用什么布局管理器对JFrame和各JScrollPane的?

编辑:所有外部工具包都必须经过我们公司的法律部门,才能纳入我们的项目。我想坚持内部的Java库。

编辑2:完成!以下是最终设置: http://i.imgur.com/5ndjx.png

我学到的是在Java中保持划分非常重要。我对所有的物品都使用了太少的容器,希望它们能够干净地放在相框上。所以我开始使用更多的面板和布局管理器,它出现了美丽。看起来很完美。感谢大家的帮助。

+0

请注意,使用多个面板可能会经常妨碍面板之间的共谋对齐;这在您的具体情况中可能不是问题,但在通常的应用程序中,这通常是个不错的选择。现在我尝试只保留一个窗口/对话框的一个面板(即一个布局)。而且我使用“更高级”布局管理器,例如DesignGridLayout(这对于我必须处理的大部分窗口都是完美的)。 – jfpoilpret 2012-01-10 15:47:25

+0

看看[MigLayout](http://www.miglayout.com/),它很棒。 – ninesided 2012-01-04 00:33:26

回答

3

恕我直言,我会使容器的内容窗格一个JSplitPane实例。

上半部分将由三层JComponent实例组成,并使用BoxLayout管理器与Y_AXIS对齐。顶层将使用FlowLayout管理器。中间层将由几个并列JComponent实例组成,其中每个实例都使用BoxLayout管理器和Y_AXIS对齐。当然,图层本身会使用FlowLayout管理器。底层将由几个并列JComponent实例组成,并使用FlowLayout管理器。

下半部分与上半部分完全相同,因此,请考虑将所有这些逻辑封装在单个自定义组件中。

欲了解更多信息,请参阅Using Layout Managers

+1

我甚至都不知道JSplitPane。现在读一下他们,他们看起来很棒。谢谢! – anon58192932 2012-01-04 00:36:33

3

我会倾向于在每一步使用MigLayout。

+0

所有的外部库和工具包必须经过我公司的法律部门的批准,然后才能使用/链接等。感谢这一点,尽管我会在家中尝试自己的个人使用。 – anon58192932 2012-01-04 00:38:31

+1

不够公平,尽管如果您使用的布局足以保证所做的努力,我会建议您开始审批流程。 – 2012-01-04 00:53:48

+0

这是我第一个Java可视化项目。当我回家时,我要测试MigLayout。如果我喜欢它(听起来像我会的),我可能会通过该过程获得批准。 再次感谢! – anon58192932 2012-01-04 01:44:09