------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! -------
图形用户接口GUI(GraphicalUser Interface)
GUI用图形的方式,来显示计算机操作的界面,这样更方便更直观.
CLI(Command line User Interface)命令行用户接口,就是常见的Dos命令行操作,需要记忆一些常用的命令,操作不直观.比如:创建文件夹,或者删除文件夹等.
Java为GUI提供的对象都存在java.Awt和java.Swing两个包中.
java.Awt:Abstract Window ToolKit(抽象窗口工具包),需要调用本地方法来实现功能.属重量级控件.有些依赖平台,跨平台效果不佳.
java.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Jaca实现.增强了移植性,属轻量级控件,用它的开发的图形界面能在任何系统下运行保持一致.跨平台性强.
继承关系图
Container:容器,是一个特殊的组件,该组件中可以通过add方法添加其它组件.容器中的组件的排放方式就是布局.
常见的布局管理器:
FlowLayout(流式布局管理器)从左到右的顺序排列,Paner默认的布局管理器.
BorderLayout(边界布局管理器)东南西北中,Frame默认的布局管理器.
GridLayout(网格布局管理器)规则的矩阵.
GridBagLayout(网格包布局管理器)非规则矩阵.
CardLayout(卡片式布局管理器)选项卡.
练习:
importjava.awt.*;
importjava.awt.event.*;
public class FrameDemo
{
public static void main(String[] args)
{
//创建一个窗体
Frame frame = new Frame("我的窗体");
// 设置窗体的长度(横坐标)为300,宽度(纵坐标)为200
frame.setSize(300, 200);
// 设置窗体弹出来时的位置
frame.setLocation(200, 300);
// 设置窗体的布局
frame.setLayout(new FlowLayout());
// 为窗体添加一个button按扭
Button btn = new Button("这是一个按扭");
frame.add(btn);
/*
* 如果没有处理该事件,那么窗体将不能关闭
//单击关闭事件
frame.addWindowListener(newWindowAdapter()
{
// 重写WindowAdapter的windowClosing方法
public voidwindowClosing(WindowEvent e)
{
// 关闭窗体,也就是停止程序
System.exit(0);
}
});
*/
// 设置窗体可见
frame.setVisible(true);
}
}
以上代码运行后,出现的窗体当点击关闭的时候,却没有反应.这是因为没有运行该事件处理的方法.如果把
frame.addWindowListener(newWindowAdapter()
{
// 重写WindowAdapter的windowClosing方法
public void windowClosing(WindowEvent e)
{
// 关闭窗体,也就是停止程序
System.exit(0);
}
});
这个方法的注释去掉再运行,那么窗体就能正常关闭.
事件监听机制的特点:
1. 事件源:就是awt包或者swing包中的那些图形界面组件
2. 事件;每一个事件源都有自己的对应事件和共性事件
3. 监听器:将可以触发某一个事件的动作(不只一个动作)封装在一起.
4. 事件处理:对某一事件产生的动作进行处理.
前三都在java中已经定义.而我们要做的就是”事件的处理”.
/*
* 练习:
* 鼠标和键盘的一些事件
*
*/
importjava.awt.*;
import java.awt.event.*;
public class MouseAndKeyEvent
{
private Framef =null;
private Buttonb =null;
private TextFieldtf =null;
//构造方法
public MouseAndKeyEvent()
{
init();
}
// 程序开始运行窗体就且有一些设置