传智播客_Java培训_毕向东_Java基础[08-GUI]系黑马程序员_毕向东_Java基础视频教程
GUI
•Graphical User Interface(图形用户接口)。
• 用图形的方式,来显示计算机操作的界面,这样更方便更直 观。
CLI
•Command line User Interface (命令行用户接口)
• 就是常见的Dos命令行操作。
• 需要记忆一些常用的命令,操作不直观。
举例:
• 比如:创建文件夹,或者删除文件夹等
Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。
### 关键知识点解析
#### 一、GUI与CLI的区别及应用
- **GUI**(Graphical User Interface,图形用户界面)是一种使用图形元素(如窗口、按钮、菜单等)进行人机交互的操作环境,使用户能够更加直观地操作计算机程序。这种界面方式降低了用户的操作难度,提高了效率和用户体验。
- **CLI**(Command Line Interface,命令行界面)是通过键盘输入指令来进行操作的一种用户界面。CLI通常用于执行复杂的任务,但由于需要记忆大量的命令和参数,对于新手来说不够友好。
#### 二、Java中的GUI开发包介绍
- **AWT**(Abstract Window Toolkit,抽象窗口工具包)是Java早期提供的GUI开发包,它依赖于操作系统提供的原生图形界面支持。因此,在不同的操作系统上,AWT组件的表现可能会有所不同。
- **Swing**是在AWT基础上发展起来的新一代GUI开发包,完全用Java编写,具有良好的跨平台性。Swing提供了更多高级组件,并且可以定制外观,使得开发者能构建更为美观和功能强大的应用程序。
#### 三、AWT与Swing的区别
- **AWT**是重量级组件,需要调用操作系统底层API来实现界面绘制,因此性能较好但可移植性较差。
- **Swing**则是轻量级组件,所有界面都是纯Java实现,具有更好的可移植性和灵活性,但性能稍逊于AWT。
#### 四、组件继承体系
- **Component**类是所有AWT组件的基类,它定义了一些基本的行为和属性。
- **Container**是Component的一个子类,它是一个特殊的组件,可以容纳其他的组件。例如,`Panel`和`Window`都是`Container`的子类。
- **Window**类代表了一个顶级容器,如`Frame`和`Dialog`。
- **Panel**类代表了一个可以放置其他组件的容器,通常作为布局的一部分使用。
- **Frame**类代表了一个可以独立存在的顶级窗口。
#### 五、布局管理器
- **FlowLayout**:按从左到右、从上到下的顺序排列组件,默认的布局管理器之一,适用于简单的界面设计。
- **BorderLayout**:将容器分为东、南、西、北、中五个部分,是`Frame`的默认布局管理器,适合创建分区域的界面。
- **GridLayout**:将容器划分为规则的网格,所有单元格的大小相同,适用于表格式的布局。
- **CardLayout**:类似于选项卡的布局方式,可以在同一个位置显示不同的内容。
- **GridBagLayout**:提供了一个非常灵活的网格布局方式,可以自定义每个组件的大小和位置。
#### 六、事件监听机制
- **事件源**(如按钮、文本框等组件)是事件发生的源头。
- **事件**(Event)是当用户对事件源进行某种操作时产生的。
- **监听器**(Listener)负责监听事件源上的事件并做出响应。
- **事件处理**是指当监听器接收到事件后执行的代码。
#### 七、简单窗体的创建
- 创建一个`Frame`对象,并设置其标题、布局、大小和位置。
- 使用`setVisible(true)`方法使窗体可见。
#### 八、示例代码分析
- 通过按钮关闭窗体的例子展示了如何使用事件监听机制来响应按钮点击事件,并关闭窗体。
- 文本框和按钮的结合使用演示了如何通过键盘输入来控制程序的行为,如显示指定目录下的文件列表。
#### 总结
通过对上述内容的学习,我们不仅了解了GUI与CLI的基本概念及其在Java中的实现方式,还深入探讨了AWT与Swing的区别、组件的继承体系、布局管理器的选择以及事件监听机制的应用。这些知识是Java GUI编程的基础,对于开发出用户友好的桌面应用程序至关重要。