FlowLayout中组件和容器边框之间的可用空间

时间:2013-12-07 11:58:22

标签: java swing layout awt flowlayout

当我在具有流布局管理器的内容窗格中放置内容时,我获得该组件与内容窗格边框之间的可用空间。

默认的流布局有hgap和wgap非零,但是将它们设置为零并不能解决问题。

注意:请帮助我进行此布局,不建议使用其他布局,因为这是较大的应用程序的摘录。

设置负hgap和wgap可能有所帮助,但这肯定不是解决方案。 以下是要检查的代码:

import java.awt.*;
import javax.swing.*;

public class MainWindow extends JFrame{

public MainWindow (){
    JPanel contentPane = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));

    JPanel wp = new JPanel();
    wp.setPreferredSize(new Dimension(500, 500));
    wp.setBackground(Color.DARK_GRAY);

    contentPane.add(wp);

    setContentPane(contentPane);

    pack();
    setResizable(false);
    setVisible(true);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
        new MainWindow();
}
}

1 个答案:

答案 0 :(得分:0)

我找到了另一个主题的答案。您必须在调用pack()之前编写setResizable(false)。没有找到解释为什么这是必要的,我认为这是因为pack()为帧添加了一些额外的空间。如果你不想让窗口可调整大小我怎么解决这个问题我不知道。注意:您遇到与其他LayoutManagers相同的问题,例如BorderLayout(带有包的管理器会增加额外空间)。