0

我正在学习如何制作小程序。我有一个包含小程序的框架。在小程序中,有 4 个不同的面板:一个主面板(带有 BorderLayout)和主面板中的 3 个子面板 one()——一个向北,一个向南,一个向中心)。每当我启动小程序时,主框架尺寸都非常小。我尝试使用 setSize() 更改它,但它不起作用。然后我尝试使用其他帖子中的 setPreferedSize() 和 pack() ,但它对我不起作用。这是我的代码:

        BounceBallApp applet = new BounceBallApp();
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("BounceBallApp");

        frame.add(applet, BorderLayout.CENTER);

        frame.setPreferredSize(new Dimension(1000, 1000));
        frame.setLocationByPlatform(true);
        frame.pack();
        frame.setVisible(true);
4

2 回答 2

1

嗯,你的问题...

frame.setPreferredSize(new Dimension(1000, 1000));
frame.setLocationByPlatform(true);
frame.pack(); <-- This is you're problem, or is it...

pack你会使用布局管理器的首选尺寸来“打包”框架,这样你就不必猜测了......

从 Java 文档...

使此 Window 调整大小以适合其子组件的首选大小和布局。如果任一尺寸小于先前调用 setMinimumSize 方法指定的最小尺寸,则生成的窗口宽度和高度会自动放大。

如果窗口和/或其所有者还不能显示,则在计算首选大小之前,它们都可以显示。在计算窗口大小后验证窗口。

另外......我不能开始怀疑你为什么要以这种方式混合两个顶级容器,但我真的鼓励你不要......

于 2012-11-02T03:24:00.070 回答
0

尝试使用Component#setMinimumSize(...)它不会允许任何布局管理器违反此最小尺寸。

于 2012-11-02T03:55:51.957 回答