1.Component
界面上 显示的所有的组件,可在屏幕上显示,并可与用户进行交互。典型图形用户界面中的按钮、复选框和滚动条
Button 按钮
Canvas 画布
Checkbox 复选框
Label 标签,用来在页面显示文本信息,不能够编辑
List 可滚动的列表
Scrollbar 滚动条
JComponent
JTable 表格
TextComponent
TextField 单行文本框
TextArea 多行文本框(文本域)
Container 容器
Window 窗口
Frame 窗体
Dialog 对话框
FileDialog 文件对话框
Panel 面板
Canvas 画布
Checkbox 复选框
Label 标签,用来在页面显示文本信息,不能够编辑
List 可滚动的列表
Scrollbar 滚动条
JComponent
JTable 表格
TextComponent
TextField 单行文本框
TextArea 多行文本框(文本域)
Container 容器
Window 窗口
Frame 窗体
Dialog 对话框
FileDialog 文件对话框
Panel 面板
2.Frame
是带有标题和边框的顶层窗口
构造方法:
public Frame() 构造一个最初不可见的 Frame 新实例()。Frame 的标题为空。
方法:
public void show() 方法 显示窗口, 过时了
public void setVisible(boolean b)根据参数 b 的值显示或隐藏此组件。
public void setTitle(String title) 设置标题
public void setSize(int width, int height) 设置窗口大小
构造方法:
public Frame() 构造一个最初不可见的 Frame 新实例()。Frame 的标题为空。
方法:
public void show() 方法 显示窗口, 过时了
public void setVisible(boolean b)根据参数 b 的值显示或隐藏此组件。
public void setTitle(String title) 设置标题
public void setSize(int width, int height) 设置窗口大小
public void setSize(Dimension d) 设置窗口大小,传一个尺寸对象
Dimension 类封装单个对象中组件的宽度和高度
public void setLocation(int x, int y) 设置窗口位置
public void setLocation(Point p)设置窗口位置,传一个坐标点对象
Dimension 类封装单个对象中组件的宽度和高度
public void setLocation(int x, int y) 设置窗口位置
public void setLocation(Point p)设置窗口位置,传一个坐标点对象
3.事件监听机制
事件源: 可能要发生时间的对象
事件源: 窗体
事件: 能够发生哪些事情
事件: 能够发生哪些事情
事件 : 点击关闭窗口
事件处理:当事件发生后,对应的处理方式
事件处理:当事件发生后,对应的处理方式
事件处理: 退出程序
事件监听:监听事件源,是否有事件发生
事件监听: 窗体监听器
事件 :
interface 事件接口 {
存钱
取钱
抢劫
}
事件处理适配器类:
class 事件处理适配器类 implements 事件接口 {
存钱() {
}
取钱() {
}
抢劫() {
}
}
事件处理具体类:
class 事件处理具体类 extends 事件处理适配器类 {
//只需要重写 指定的方法即可
}
事件监听: 一个方法,用来给事件源添加监听的
事件监听:监听事件源,是否有事件发生
事件监听: 窗体监听器
4.适配器设计模式
事件源: 银行事件 :
interface 事件接口 {
存钱
取钱
抢劫
}
事件处理适配器类:
class 事件处理适配器类 implements 事件接口 {
存钱() {
}
取钱() {
}
抢劫() {
}
}
事件处理具体类:
class 事件处理具体类 extends 事件处理适配器类 {
//只需要重写 指定的方法即可
}
事件监听: 一个方法,用来给事件源添加监听的
import java.awt.Frame;
import java.awt.event.WindowListener;
/*
* 测试
*
事件源: 窗体
事件 : 点击关闭窗口
事件处理: 退出程序
事件监听: 窗体监听器
*/
public class FrameDemo {
public static void main(String[] args) {
//创建窗体
//事件源: 窗体, 银行
Frame frame = new Frame();
//设置标题
frame.setTitle("人来银行");
//设置尺寸大小
frame.setSize(500, 500);
//设置位置
frame.setLocation(400, 100);
//事件监听: 窗口监听器 摄像头,保安
//public synchronized void addWindowListener(WindowListener l)
//new MyWindowListener();//创建一个保安
//创建一个保安,来监听银行要发生的事件
frame.addWindowListener(new MyWindowListener());
//显示
frame.setVisible(true);
}
}
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
//保安类
public class MyWindowListener implements WindowListener {
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
//点击关闭按钮,执行的操作方法
@Override
public void windowClosing(WindowEvent e) {
// 退出程序, 结束JVM
System.exit(0);
}
@Override
public void windowClosed(WindowEvent e) {
}
@Override
public void windowIconified(WindowEvent e) {
}
@Override
public void windowDeiconified(WindowEvent e) {
}
@Override
public void windowActivated(WindowEvent e) {
}
@Override
public void windowDeactivated(WindowEvent e) {
}
}
5.复杂菜单设计
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
/*
* 复杂的菜单
*
* 文件
* 打开记事本
* 修改标题
* 我要学好Java
* 我要天天敲代码
* 恢复标题
* 退出
*
*/
public class MenuDemo2 {
public static void main(String[] args) {
//创建窗体
final Frame frame = new Frame("复杂的菜单");
//窗体的标题
final String title = frame.getTitle();
//设置窗体的大小与位置
frame.setBounds(200, 200, 300, 300);
//-------------------------------------------
//创建菜单栏
MenuBar bar = new MenuBar();
//创建菜单
Menu fileMenu = new Menu("文件");//文件菜单
Menu titleMenu = new Menu("修改标题");//标题菜单
//创建菜单项
MenuItem mi1 = new MenuItem("打开记事本");
final MenuItem mi2 = new MenuItem("我要学好Java");
final MenuItem mi3 = new MenuItem("我要天天敲代码");
final MenuItem mi4 = new MenuItem("恢复标题");
MenuItem mi5 = new MenuItem("退出");
//---------
//把打开记事本 添加到文件菜单
fileMenu.add(mi1);
//把mi2,mi3,mi4 添加到 标题菜单 中
titleMenu.add(mi2);
titleMenu.add(mi3);
titleMenu.add(mi4);
//把标题菜单 添加到 文件菜单中
fileMenu.add(titleMenu);
//把退出 添加到文件菜单
fileMenu.add(mi5);
//把文件菜单添加到菜单栏
bar.add(fileMenu);
//把菜单栏添加到窗体中
frame.setMenuBar(bar);
//-------------------------------------------
//为菜单项 添加动作监听
//打开记事本
mi1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Runtime r = Runtime.getRuntime();
try {
r.exec("notepad");
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
//"我要学好Java"
mi2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setTitle(mi2.getLabel());
}
});
//我要天天敲代码
mi3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setTitle(mi3.getLabel());
}
});
//恢复标题
mi4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//frame.setTitle(mi4.getLabel());
frame.setTitle(title);
}
});
//退出
mi5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
//-------------------------------------------
//显示
frame.setVisible(true);
}
}