当我在内容窗格中放入具有流布局管理器的内容时,我会在该组件和内容窗格的边界之间获得可用空间。
默认流布局的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的管理器会增加额外的空间)。