我想在FlowLayout和GridBagLayout之间进行权衡。简而言之,我在我的JPanel中添加了一些组件(我不知道其中有多少,它是运行时的创建),我希望这些组件垂直居中。 FlowLayout非常适合我的目标,但它在JPanel的顶部添加了组件。所以,我决定使用GridBagConstraints,就像有人在这里建议的那样(Java layout manager vertical center),但我解决这个问题的方法是GridBagLayout不会自动创建一个新行,所以我只有一行(垂直居中,至少!!!)我插入的组件超出了屏幕尺寸。谁能给我一些关于那个的伎俩?
答案 0 :(得分:3)
我希望这些组件垂直居中。 FlowLayout非常适合我的目标,但它在JPanel顶部添加了组件
您永远不会被迫使用单个面板或布局管理器。您可以使用嵌套面板。例如:
JPanel centered = new JPanel( choose your layout manager );
Box vertical = Box.createVerticalBox();
vertical.add( Box.createVerticalGlue() );
vertical.add( centered );
vertical.add( Box.createVerticalGlue() );
frame.add( vertical );
垂直面板中的胶水将占用相同数量的额外空间,使得#34;居中"面板垂直居中。因此,您可以使用您想要的任何布局将组件添加到居中的面板。