帧未设置为定义Java的大小

时间:2012-11-02 03:20:15

标签: java swing

我正在学习如何制作applet。我有一个包含applet的框架。在小程序中,有4个不同的面板:一个主面板(带有BorderLayout)和主要面板内的3个子面板() - 一个到北方,一个到南方,一个到中心)。 每当我启动applet时,主框架尺寸都非常小。我尝试使用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);

2 个答案:

答案 0 :(得分:1)

嗯,这是你的问题......

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

pack您会使用布局管理器首选大小来“打包”框架,这样您就不必猜测......

来自Java Docs ...

  

使此窗口的大小适合首选大小和布局   其子组件。窗口的最终宽度和高度是   如果任何一个尺寸小于,则自动放大   上一次调用setMinimumSize指定的最小大小   方法

     

如果窗口和/或其所有者尚未显示,则两者都可以显示   在计算首选尺寸之前可以显示。窗户   在计算其大小后进行验证。

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

答案 1 :(得分:0)

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