Java选择布局问题

Java选择布局问题,java,swing,layout,panel,gridbaglayout,Java,Swing,Layout,Panel,Gridbaglayout,嘿,伙计们,我正试图制作一个顶部有导航条的屏幕,我不确定什么布局是最好的。基本上,我希望屏幕看起来像: [Nav Panel Up top, One row] [ ^ ] [ | ] [ Empty Panel ] [ | ] [ | ] [ | ] [

嘿,伙计们,我正试图制作一个顶部有导航条的屏幕,我不确定什么布局是最好的。基本上,我希望屏幕看起来像:

[Nav Panel Up top, One row]
[            ^            ]
[            |            ]
[       Empty Panel       ]
[            |            ]
[            |            ]
[            |            ]
[            ^            ]
嵌套面板包含导航按钮


我的问题是,我应该使用GridBagLayout并将其设置为10行,让空面板扩展其中的9行,还是Java中有更好的布局允许我这样做?

您不希望在
GridBagLayout
中使用9行来容纳一个组件;它比那更强大。相反,为
0
的导航面板a和
1
的空面板a
weighty
指定
GridBagConstraints
(或任何正数)。这将导致空面板占用任何额外空间。

您不希望在
GridBagLayout
中使用9行来容纳一个组件;它比那更强大。相反,为
0
的导航面板a和
1
的空面板a
weighty
指定
GridBagConstraints
(或任何正数)。这将导致空面板占用任何额外的空间。

导航栏听起来像是一个独立的组件。如果额外的嵌套级别不是问题,我只需要使用,将导航栏组件和空面板(我认为UI的其余部分在这里)放入

我更喜欢
GridBagLayout
来制作无法再拆分为子面板的复杂控件,并且需要在有很多边需要对齐的地方进行布局——在这种情况下,它的灵活性有点过头了。(当然,它仍然非常适合这个任务,只是不是完成它的最简单的方法。)

这个“导航栏”听起来像是一个独立的组件。如果额外的嵌套级别不是问题,我只需要使用,将导航栏组件和空面板(我认为UI的其余部分在这里)放入


我更喜欢
GridBagLayout
来制作无法再拆分为子面板的复杂控件,并且需要在有很多边需要对齐的地方进行布局——在这种情况下,它的灵活性有点过头了。(当然,它仍然非常适合此任务,只是不是完成此任务的最简单方法。)

为什么不在菜单栏中填充导航按钮?@mre OP可能需要图标。(虽然在这种情况下,最好使用导航栏,并将操作添加为菜单项。)@Inradial,我不确定是否理解您的论点。您仍然可以将图标添加到导航按钮..您可以将按钮添加到菜单栏吗?我没有意识到这一点。代码基本上是JMenu home=newjbutton(“home”);从那里,它将像一个普通的按钮一样处理?@Tyler,是的,你可以,是的,他们会。为什么不用导航按钮填充菜单栏?@mre OP可能需要图标。(虽然在这种情况下,最好使用导航栏,并将操作添加为菜单项。)@Inradial,我不确定是否理解您的论点。您仍然可以将图标添加到导航按钮..您可以将按钮添加到菜单栏吗?我没有意识到这一点。代码基本上是JMenu home=newjbutton(“home”);从那以后,它将像一个普通的按钮一样被处理?@Tyler,是的,你可以,是的,他们会。+1表示边界布局。插入到中间的面板仍然可以将任何布局+1用于BorderLayout。插入到中间的面板仍然可以使用任何布局