我应该使用什么Swing布局?

时间:2015-07-08 21:15:57

标签: java swing jframe jpanel layout-manager

有人可以告诉我我应该用什么布局使它看起来像下图?我知道你必须为此使用多种布局,但我遇到的问题最多的是我不知道我的主面板布局是什么,面板将包含其他面板内部。

我只是需要知道我应该使用哪种面板布局使其看起来如下图所示。 (框架伸展,一些按钮也伸展)

Layout

2 个答案:

答案 0 :(得分:1)

GridBagLayout是一种非常灵活的布局,您可以使用它来完成所示的示例。

Oracle有一个关于如何使用GridBagLayout的精彩教程。它应该很容易在Google上找到。

答案 1 :(得分:1)

很少会使用单个布局管理器。

例如,要显示按钮编号1-7,您可能会执行以下操作:

JPanel left = new JPanel( new GridLayout(2, 0) ); // 2 rows
left.add( new JButton("1") );
left.add( new JButton("2") );

JPanel center = new JPanel( new BorderLayout() );
center.add(new JButton("3"), BorderLayout.PAGE_START);
center.add(new JButton("4"), BorderLayout.CENTER);
center.add(new JButton("5"), BorderLayout.PAGE_END);

JPanel right = new JPanel( new GridLayout(2, 0) ); // 2 rows
right.add( new JButton("5") );
right.add( new JButton("6") );

JPanel buttons = new JPanel( new GridLayout(0, 3) ); // 3 columns
buttons.add(left);
buttons.add(center);
buttons.add(right);

对于"帮助","高级","确定"和"取消"你可能想要使用水平BoxLayout的按钮。您可以根据需要使用水平胶和水平支柱来获得按钮之间的动态和固定间距。

我将让您弄清楚如何将其他组件分组到逻辑面板中,然后为面板选择合适的布局管理器。

查看Using Layout Managers上的Swing教程,了解每个布局管理器的工作示例。