Java-图形界面入门
Java中容器,事件和组件构成了图形界面的三大要素!
首先介绍一个简单窗口的组成
- 顶层容器
- 菜单栏
- 中间容器
- 基本组件
一、容器与布局
容器类是由javax.swing包提供
- 顶层容器:JFrame、JApplet、JDialog、JWindow.
- 中间容器: JPanel、JScrollPane、JSplitPane、JDesktopPane、JToolBar.
- 特殊容器: 在Gul起特殊作用的中间层,如JInternalFrame、JLayeredPane、JRootPane.
使用Java语言编写GUI程序时,需要首先创建某种顶层容器,然后指定其所用的布局管理器,接着用add()方法放入创建好的各组件即可
JFrame是Swing编写GUl程序最常用的容器类,可以用来创建窗体作为顶层容器。
同样JDialog创建对话框,用JWindow创建窗口,而用JApplet创建小应用程序。
AWT :
抽象窗口组件工具包,是 Java 最早的用于编写图形节目应用程序的开发包。
Swing :
是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的。
面板:
为了更好的管理组件而引入的,可以解决将所有组件都添加到窗口,对话框等提供的默认组件容器带来的一些问题!
比较易出题的点:
JFrame窗口的默认管理器是BorderLayout,最多管理5个组件!
JPanel窗口的默认顺序管理器是FlowLayout!
布局可以分为无布局,边界布局,顺序布局,网格布局,卡片布局
二、事件处理
事件是GUI程序得以高效运行的核心所在,主要用于驱动组件的动作,实现用户与系统间的交互,系统需要通过事件来响应用户的操作,常见的事件有,动作事件,焦点事件,鼠标事件和键盘事件。
事件处理的过程主要涉及事件源,事件和事件处理者。
对于GUI编程来说:
事件源是事件发生的场所,通常是各个组件,如被单击的按钮。
事件是用户对界面的操作,如操作键盘时触发的键盘事件。
而事件处理者则是对收到的事件,进行处理的程序也称为监听器。
Java语言是通过授权模型来处理事件。由于同一个事件源上可能发现多个事件,为此JAVA把所有可能发生的事件分别授权给不同的监听器来处理,而让监听器时刻监听事件源上所发生的事件。一旦该事件类型与自己负责处理的类型一致, 就可马上进行处理。这样的处理实际上是把事件的处理委托给外部的处理实体进行处理,实现了事件源和监听器的分离。
编写事件处理程序的一般顺序总结分为三步:
- 创建某组件对象,并考虑该组件对象与那个或那些事件相关。
- 编写该组件对象的事件处理者类, 即实现要处理事件对应的监听器接口。
- 创建事件处理者类的实例,并用调用组件对象的对应该类事件的添加方法来注册监听器。
eg:创建某组件对象ActionEvent,编写该组件对象的事件处理类即监听器ActionListenter,具体实现actionPerformed方法,创建实例,调用添加方法addActionListener
三、Swing组件
Swing包含了构建图形界面的各种组件,如:窗口,标签,按钮和文本框!
为了和AWT组件区分,Swing组件在java.swing.*包下,类名均以J开头,如JFrame,JLabel,JButton等!
常见的组件:
按钮:
使用JComponent的子类的JRadioButton类创建单项选择框,为用户提供单项选择。单选按钮它只有选中和未选状态
标签:
使用JComponent的子类JLabel类创建标签,标签为用户提供信息提示。
文本组件:
- 文本框是由JTextField类实现的,是用来接收用户输入的单行文本
- 文本域是由JTextArea类实现的,该组件是由JTextFiled组件的拓展,只是支持多行文本输入
- 密码框是使用JComponent的子类的子类JPasswordField创建密码框,允许输入单行密码,密码框默认回显字符是“*”
列表:
使用JComponent的子类的JComboBox类来创建下拉列表,为用户提供下拉列表。
组合框:
组合框是由JComboBox类实现的,可认为是一个文本框和一个列表框的组合,供用户从下拉列表中选择某一个选项!
图形化界面是一种广为接受的人机交互,本章只是最基础也是最重要的一些点!