Java 使用布局在屏幕中心设置面板
我尝试通过使用将子面板的位置设置在父面板的中心Java 使用布局在屏幕中心设置面板,java,swing,layout,Java,Swing,Layout,我尝试通过使用将子面板的位置设置在父面板的中心 parent_panel.setLayout(new BorderLayout()); parent_panel.add(child_panel, BorderLayout.CENTER); 但它被添加在水平屏幕的中间,但在顶部垂直 我需要怎么做才能将它垂直和水平地添加到屏幕中心 如果我理解正确,您需要这样的界面: +-------- Parent panel --------+ | |
parent_panel.setLayout(new BorderLayout());
parent_panel.add(child_panel, BorderLayout.CENTER);
但它被添加在水平屏幕的中间,但在顶部垂直
我需要怎么做才能将它垂直和水平地添加到屏幕中心 如果我理解正确,您需要这样的界面: +-------- Parent panel --------+ | | | | | +--- Child panel ----+ | | | | | | | | | | | | | | | | | | +--------------------+ | | | | | +------------------------------+
parent_panel.setLayout(new GridBagLayout());
parent_panel.add(child_panel, new GridBagConstraints());
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());
BoxLayout
,如下所示:
+-------- Parent panel --------+
| |
| |
| +--- Child panel ----+ |
| | | |
| | | |
| | | |
| | | |
| +--------------------+ |
| |
| |
+------------------------------+
parent_panel.setLayout(new GridBagLayout());
parent_panel.add(child_panel, new GridBagConstraints());
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());
你能提供更多的代码吗。这两行看起来不错,但如果能看到您所做的一切,那就太好了。parent_panel是否还有其他子项?您是否覆盖了childPanel的大小?我没有向主面板添加任何其他子面板,但我正在向上述子面板添加其他面板。关于代码,我认为只有两行代码与主面板中子面板的布局定位有关。是否希望顶部有填充?如果您有一个边框布局,并将某个对象设置为中心,这只意味着它将填充所有未被北、南、东或西对象占用的空间。@mmyers我不希望顶部有任何内容,只希望该空间为空白。