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();
}
}

我在另一个主题上找到了答案。在调用pack()之前,必须编写setResizable(false)。我还没有找到为什么这是必要的解释,我认为这是因为pack()为框架添加了一些额外的空间。如果你不想调整窗口的大小,我不知道如何解决这个问题。注意:其他LayoutManager(如BorderLayout)也有同样的问题(带有pack的管理器会增加额外的空间)。

相关内容

  • 没有找到相关文章

最新更新