为什么JFrame setSize()方法不能正确设置大小?
所以我已经在Java编程学了一个学期左右的时间,而且我遇到了几次这个问题,最后才开始提出问题。
如果我做一个JFrame
然后设置大小,setSize(400,800)
例如。帧实际上并不800 pixels
长。据我所知,它实际上770
(or maybe 769)
pixels更长。另外,如果您将垂直尺寸设置得非常小(低于30),则框架甚至不会显示,只有操作系统顶部的窗口栏和框架才会变大,直到您将值超过30(这样setSize(400,0)
看起来与)相同setSize(400,20)
。为什么会这样,修复起来并不难,但是很奇怪,我很好奇为什么会这样?
如果您需要有关任何内容的更多信息,请询问,我会尽快给您。
回答:
可能是因为框架的大小包括边框的大小。
框架是带有标题和边框的顶级窗口。边框的大小包括为边框指定的任何区域。可以使用getInsets方法获得边界区域的尺寸。由于边框区域包括在框架的整体大小中,因此边框有效地遮盖了框架的一部分,从而将可用于渲染和/或显示子组件的区域限制为具有(插入)左上角位置的矩形。左侧为insets.top),尺寸为宽度-(insets.left
+ insets.right)乘以高度-(insets.top + insets.bottom)。
来源:http
:
//download.oracle.com/javase/tutorial/uiswing/components/frame.html
以上是 为什么JFrame setSize()方法不能正确设置大小? 的全部内容, 来源链接: utcz.com/qa/420322.html