盘点Java窗体中关于默认布局管理器容易踩的坑

简介:

 

JFrame窗体的默认布局管理器是边界布局管理器,在使用之前应该先使用setLayout(null)取消该布局管理器。

Hello!大家好,我是灰小猿!

image.gif编辑

最近在使用Java窗体进行界面布局设置时,遇到这样一个问题,就是无论如何进行控件的布局,结果窗体上就只会布满整一个控件,代码和结果如下这样。

image.gif编辑

这就很疑惑了,明明给控件设置了坐标以及长宽,为什么在显示的时候还是会布满整个窗体?

image.gif编辑

之后查阅了很多发现是因为在不指定窗体布局的情况下,Swing组件的布局模式是边界布局管理器(BorderLayout),该布局管理器有一个特点就是在容器中放置一个组件之后,该组件是被放置在窗体中间的,并且整个组件会占据窗体的整个空间,这也就造成了在添加了组件之后,无论如何设置空间位置,空间仍然处于窗体中间并且布满的状态。

了解了这个时候,我使用了setLayout(null)来取消窗体的默认布局管理器,也就是告知窗体不再使用边界布局管理器。但是意外又来了,在我添加了setLayout(null)之后,发现界面仍然没有变化,如下所示,

image.gif编辑

这就很奇怪了,明明已经取消了边界布局管理器,为什么在设置了控件之后还是没有效果?

image.gif编辑

经过仔细研究发现,是显示窗体可见的代码setVisible(true);放在了取消布局管理器代码的前面,这就造成了窗体先显示出来,然后才取消了边界布局,这样导致了setLayout(null)就没有了意义。

最后将setLayout(null)放在了显示窗体可见的代码setVisible(true)之前,问题解决,结果如下:

image.gif编辑

在这里需要注意的就是:

JFrame窗体的默认布局管理器是边界布局管理器,在使用之前应该先使用setLayout(null)取消该布局管理器,同时,应该在设置好之后,最后再设置setVisible(true)使窗体页面可见,否则设置的属性将无意义。

好了,觉得不错记得点赞关注我哟!

大灰狼陪你一起进步!

image.gif编辑

目录
相关文章
|
3月前
|
Java Maven
使用java语言制作一个窗体(弹窗),用来收集用户输入的内容
该博客文章介绍了如何使用Java Swing中的JFrame创建一个窗体来收集用户输入的内容,并提供了详细的实现步骤和完整代码示例。
使用java语言制作一个窗体(弹窗),用来收集用户输入的内容
|
1月前
|
存储 Java
深入理解java对象的内存布局
这篇文章深入探讨了Java对象在HotSpot虚拟机中的内存布局,包括对象头、实例数据和对齐填充三个部分,以及对象头中包含的运行时数据和类型指针等详细信息。
28 0
深入理解java对象的内存布局
|
6月前
|
Java 开发者
Java一分钟之-JavaFX布局管理:GridPane, VBox, HBox
本文介绍了JavaFX的三种常用布局管理器:GridPane、VBox和HBox。GridPane用于创建二维网格布局,需设置行和列约束以防止控件重叠。VBox按垂直方向堆叠控件,记得设置间距。HBox水平排列控件,可能需要分配额外空间以避免水平滚动条。示例代码展示了这三种布局的使用。理解并运用这些布局管理器能提升JavaFX应用的界面设计。
297 0
|
4月前
|
设计模式 SQL 安全
Java面试题:设计一个线程安全的内存管理器,使用观察者模式来通知所有线程内存使用情况的变化。如何确保在添加和移除内存块时的线程安全?如何确保任务的顺序执行和调度器的线程安全?
Java面试题:设计一个线程安全的内存管理器,使用观察者模式来通知所有线程内存使用情况的变化。如何确保在添加和移除内存块时的线程安全?如何确保任务的顺序执行和调度器的线程安全?
38 0
|
4月前
|
Java 容器
Java详解:GUI图形用户界面设计—容器组件及面板布局方式
Java详解:GUI图形用户界面设计—容器组件及面板布局方式
105 0
|
5月前
|
存储 缓存 Java
Java对象内存布局深度解析
Java对象内存布局深度解析
|
6月前
|
存储 机器学习/深度学习 Java
【Java探索之旅】数组使用 初探JVM内存布局
【Java探索之旅】数组使用 初探JVM内存布局
69 0
|
6月前
|
人工智能 小程序 Java
JAVA开发智慧学校系统源码+人脸电子班牌布局
智慧校园是通过利用物联网,大数据技术来改变师生和校园资源相互交互的方式,以便提高交互的明确性、灵活性和响应速度,从而实现智慧化服务和管理的校园模式。
67 0
|
6月前
|
Java 容器
Java常用组件、容器与布局
Java常用组件、容器与布局
119 0
|
XML Java Android开发
HarmonyOS学习路之开发篇—Java UI框架(六大布局开发)
Android的布局开发中存在五大布局,在鸿蒙布局开发中也存在与之相似的五种布局类型,唯一多余的一个类型叫做自适应盒子布局,布局可以在不同设备上有不同的展示方式。 熟悉Android开发的小伙伴可以参照Android的布局开发来学习。
HarmonyOS学习路之开发篇—Java UI框架(六大布局开发)
下一篇
无影云桌面