我正在学习如何制作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);
答案 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(...)
这不允许任何布局管理器违反此最小尺寸。