我尝试使用以下方法将子面板的位置设置在父面板的中心
parent_panel.setLayout(new BorderLayout());
parent_panel.add(child_panel, BorderLayout.CENTER);
但它被添加到水平屏幕的中间,但垂直于顶部。
我需要做什么才能将其垂直和水平添加到屏幕中央?
如果我理解正确的话,你想要一个像这样的界面:
+-------- Parent panel --------+
| |
| |
| +--- Child panel ----+ |
| | | |
| | | |
| | | |
| | | |
| +--------------------+ |
| |
| |
+------------------------------+
...并且您没有将其他组件添加到父面板中。
如果是这种情况,据我所知,您有两种选择(基于这个问题 https://stackoverflow.com/questions/897924/java-layout-manager-vertical-center,我显然回答了):
-
Use a GridBagLayout
与一个空的GridBagConstraints
对象,像这样:
parent_panel.setLayout(new GridBagLayout());
parent_panel.add(child_panel, new GridBagConstraints());
-
Use a BoxLayout
, 像这样:
parent_panel.setLayout(new BoxLayout(parent_panel, BoxLayout.PAGE_AXIS));
Box horizontalBox = Box.createHorizontalBox();
horizontalBox.add(Box.createHorizontalGlue());
horizontalBox.add(child_panel);
horizontalBox.add(Box.createHorizontalGlue());
Box verticalBox = Box.createVerticalBox();
verticalBox.add(Box.createVerticalGlue());
verticalBox.add(horizontalBox); // one inside the other
verticalBox.add(Box.createVerticalGlue());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)