深入理解Swing框架中的 JFrame 与容器实例
Swing是Java平台标准版(Java SE)的一部分,用于构建桌面应用程序的用户界面。在这个主题中,我们将深入探讨 Swing 的核心组件——窗口和容器,特别是 JFrame、JDialog 和 JApplet。JFrame 是 Swing 中的主窗口,它与 JDialog 和 JApplet 并列为重要的窗口类型。 JFrame 是 Java 应用程序的基本窗口,它提供了一个可视化的界面框架。以下是一些关键知识点: 1. **JFrame 的实例创建**: 创建 JFrame 时,我们使用 `JFrame` 类的构造函数,并传递一个字符串参数作为窗口的标题。例如,在提供的代码片段中,`mainFrame = new JFrame("JFrameDemoTitle");` 这行代码就创建了一个名为 "JFrameDemoTitle" 的新窗口。 2. **窗口操作**: - `setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);`:此方法设置窗口关闭时的行为,当用户关闭窗口或点击关闭按钮时,应用将退出。 - `setSize(300, 300);`:设置了窗口的尺寸,这里设为 300x300 像素。 - `setLocationRelativeTo(null);`:让窗口相对于屏幕中心对齐,如果传入 null,则默认居中。 3. **窗口事件处理**: JFrame 提供了多个 `WindowListener` 接口的实现方法,如 `windowOpened()`、`windowClosing()`、`windowClosed()` 等,用于处理窗口的不同生命周期事件。这些方法分别在窗口打开、收到关闭请求、关闭后、最小化/最大化状态改变以及重新激活时调用。 4. **容器关系**: JFrame 可以包含其他 Swing 组件,包括容器(如 JPanel、CardLayout 或 BorderLayout),这些容器又可以容纳更多的组件,如 JButton、JLabel 等。然而,JDialog 和 JApplet 不可以直接添加 JFrame 作为内容,它们通常是作为 JFrame 的子窗口出现,或者在 JFrame 内部嵌套使用。 5. **轻量级和重量级容器**: Swing 提供了两种类型的容器:重量级( heavyweight)容器,如 JFrame,它们依赖于操作系统提供的图形系统;轻量级( lightweight)容器,如 JPanel,更高效且独立于平台。JFrame 由于其与操作系统紧密集成,启动时可能较慢,但在性能上不如 JPanel。 总结来说,Swing 中的 JFrame 是构建复杂桌面应用的基础,理解其窗口操作和容器结构对于开发高效、易用的 GUI 至关重要。通过组合使用 JFrame、JDialog、JApplet 和不同类型的容器,开发者可以创建出功能丰富的 Java 应用程序。
![](https://csdnimg.cn/release/download_crawler_static/2750028/bgb.jpg)
![](https://csdnimg.cn/release/download_crawler_static/2750028/bgc.jpg)
![](https://csdnimg.cn/release/download_crawler_static/2750028/bgd.jpg)
剩余63页未读,继续阅读
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/0e3c7754f22f4293bd89738e3a1b50f0_aaalxp870804.jpg!1)
- 粉丝: 2
- 资源: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)