【发布时间】:2011-09-29 09:59:10
【问题描述】:
所以我用java编程了一个学期左右,遇到过几次这个问题,终于有时间问了。
如果我创建一个JFrame 然后设置大小,例如setSize(400,800)。框架实际上并不长800 pixels。据我所知,它实际上更像770 (or maybe 769) pixels long。此外,如果您将垂直尺寸设置得非常低(低于 30),则框架甚至不会显示,只有操作系统的顶部窗口栏和框架不会变大,直到您达到超过 30 的值(所以setSize(400,0) 看起来与 setSize(400,20) 相同)。为什么会这样,不难修复,但很奇怪,我很好奇这是为什么?
如果您需要有关任何事情的更多信息,请询问,我会告诉您的。
【问题讨论】:
-
您通常不必必须设置框架的大小。如果你这样做了,那就是麻烦的征兆。相反,为框架内的组件指定首选大小(如果可能,使用构造函数参数,例如
new JTextArea(40,10)),或者通过在组件上设置首选大小并将它们添加到适当的布局/约束中。之后,pack()框架 & 它将成为显示 GUI 所需的最小尺寸。 -
@Andrew:是什么让设置框架的大小变得“麻烦”?
-
@Logan:如果一个框架的唯一组件是一个 400x400 的渲染区域,那么框架需要多大才能容纳它?让 JRE 用
pack()解决这个问题。如果您还有其他问题,我建议您(然后搜索)提出您自己的问题。关于这个话题,要提及的内容远远超过评论中的内容。