我尝试在 Netbeans 中将图像添加到我的登录框架,因此我尝试将布局从“免费设计”更改为“空布局”(就像我在此视频中看到的那样:http ://www.youtube.com/watch?v =uZFgiqM0udA),它的工作。
但是当我运行程序时,窗口在左侧打开,而不是常规大小 - 如图所示:
问题是什么?
我尝试在 Netbeans 中将图像添加到我的登录框架,因此我尝试将布局从“免费设计”更改为“空布局”(就像我在此视频中看到的那样:http ://www.youtube.com/watch?v =uZFgiqM0udA),它的工作。
但是当我运行程序时,窗口在左侧打开,而不是常规大小 - 如图所示:
问题是什么?
欢迎来到为什么你不应该使用null
布局的美妙世界(以及为什么学习使用表单设计器编写 UI 也是一个坏主意)。
您面临的问题是基于 Swing(和 AWT)被设计为与布局管理器一起使用的事实,这是框架工作方式的核心。
当您调用pack
aWindow
时,它会询问所有的孩子他们想要的尺寸,并计算 的最佳尺寸Window
。
在您的情况下,因为您没有使用布局管理器,所以窗口假定它是 0x0 的默认侧(加上框架边框)。
为了解决这个问题,我建议两件事。首先,停止使用表单设计器,直到您了解 UI 是如何构建的;其次,使用一个或多个布局管理器。
看看A Visual Guide to Layout Managers和Using layout managers
我没有机会使用它,但看看MigLayout可能也值得一看,SO 上的许多用户都强烈推荐它
据我所知,不要使用空布局,而是使用 LayoutManagers,无论如何,你是自由的,我认为你正在调用 pack() 方法到框架并且你可能没有设置框架的 aize
或者您可以继续并从修改一些布局管理器开始。
在导航器中选择您的框架,然后查找此属性
preferredSize - 框架将采用的默认大小
maximumSize - 帧的最大尺寸
minimumSize - 框架的最小尺寸
使用绝对布局固定我的!出于某种原因,默认大小 0*0 在运行时被执行(但帧保持自定义分辨率),因此将空布局更改为绝对是调用自定义帧大小。