图形界面继承体系
Component
所有图形界面超类 抽象类,具有图形表示能力的类
Container
容器: 就是可以将对象存储进去
存储的是图形界面上的内容,菜单,按钮,文本框
Container子类
Window – 窗体 无边框的窗体
Frame – 具有标题和边框的窗体
Panel – 面板 窗体分割可以存储按钮容器
Dialog – 对话框,小的窗体,进行信息的提示
FileDialog – 文件对话框
Button 按钮
Label 文本标签 信息提示使用
checkbox 复选框
TextArea 多行文本区域
TextField 单行文本区域
java.awt.Frame 带有标题和边框的窗口
构造方法
Frame(String title)传递字符串的标题
显示窗体容器,调用Frame类的父类方法
setVisible(boolean b)传递true,就显示
对窗体进行设置
大小尺寸 父类方法 setSize(int width,int height) 数据单位像素
像素: 组成图像中最小的不可分割的实心小点
屏幕定位 父类方法 setLocation(int x,int y) X轴坐标,Y纵轴坐标
获取屏幕分辨率
Toolkit static Toolkit getDefaultToolkit() 返回的是类的子类对象
Toolkit.getDefaultToolKit().getScreenSize().width 返回是Dimension
设置窗体背景色
父类方法 setBackground
/*
* 使用Frame类,实现图形界面
* 图形界面,是另一个线程在控制
*/
public class FrameDemo {
public static void main(String[] args) {
//创建Frame对象,写字符串标题
Frame f = new Frame("第一个窗体");
//父类方法setVisible
f.setVisible(true);
//获取屏幕分辨率
int h = Toolkit.getDefaultToolkit().getScreenSize().height;
int w = Toolkit.getDefaultToolkit().getScreenSize().width;
//尺寸设置,父类方法 setSize
f.setSize(500, 400);
//屏幕位置,父类方法 setLocation
f.setLocation((w-500)/2, (h-400)/2);
//设置背景色,父类方法setBackground
f.setBackground(new Color(202,232,207));
}
}
======================================================
按钮组件的使用
Button类
构造方法 Button(String label) 传递字符串的标签,标签就是按钮上写的字
设置位置,和尺寸的方式,和Frame窗体是一样
将按钮添加到窗体,使用的是窗体的方法add
/*
* 按钮,添加到窗体上
*/
public class FrameDemo1 {
public static void main(String[] args) {
Frame f = new Frame("窗体添加按钮");
f.setVisible(true);
int h = Toolkit.getDefaultToolkit().getScreenSize().height;
int w = Toolkit.getDefaultToolkit().getScreenSize().width;
f.setSize(500, 400);
f.setLocation((w-500)/2, (h-400)/2);
f.setBackground(new Color(202,232,207));
//设置布局管理,null 取消所有布局管理
//组件位置,可以任意放置,必须要定位和尺寸
f.setLayout(null);
//创建按钮对象
Button but = new Button("确定");
Button but1 = new Button("取消");
//按钮添加到窗体中,窗体方法add
f.add(but,BorderLayout.WEST);
f.add(but1,BorderLayout.EAST);
but.setSize(100, 30);
but1.setSize(100, 30);
but.setLocation(150, 50);
but1.setLocation(280, 50);
}
}
=======================================================
事件监听机制
作用: 让图形界面,有一定功能产生,根据用户的实际操作,产生不同的功能
事件源:
就是用户可以直接操作的部分, 按钮,文本框,窗体,菜单
事件:
用户的操作方式, 鼠标,键盘,窗体事件
鼠标: 点击 鼠标悬停,离开
键盘: 按下 弹起
窗体: 打开 退出 最大最小
监听器: 类似于窃听器
一旦开始工作,就不停,工作在事件源上,事实监听用户的操作
只要用户操作了事件源,用户的动作就会被事件监听器抓住
根据不同的动作处理这个事件
处理方式:
就是程序中的方法,监听器会根据用户的动作不同,选择调用方法
a(){} b(){} c(){}
点击窗体上的叉子,窗体关闭
事件源: 窗体
事件: 关闭
监听器: 作用在窗体上监听器,监听用户对窗体的操作
点击的内容,调用处理方法
a(){} b(){}
/*
* 事件监听机制,实现点击窗体上叉子,关闭窗体
*/
public class FrameDemo2 {
public static void main(String[] args) {
Frame f = new Frame("窗体关闭事件");
f.setBounds(200, 100, 500, 400);
f.setVisible(true);
//事件源,窗体,添加事件监听器
// addWindowListener
//传递接收事件的接口的实现类对象,重写接口方法
//方法,监听器根据用户的操作,自行调用
//简化成了匿名的内部类实现,new 适配器类
/*f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});*/
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}