黑马程序员——JAVA基础----GUI
2015-11-05 17:31
513 查看
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
GUI
又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例
B:优点
客户端不需要在负责对象的创建,从而明确了各个类的职责
C:缺点
这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护
D:案例演示
动物抽象类:public abstract Animal { public abstract void eat(); }
具体狗类:public class Dog extends Animal {}
具体猫类:public class Cat extends Animal {}
开始,在测试类中每个具体的内容自己创建对象,但是,创建对象的工作如果比较麻烦,就需要有人专门做这个事情,所以就知道了一个专门的类来创建对象。
工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现。
B:优点
客户端不需要在负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性
C:缺点
需要额外的编写代码,增加了工作量
D:案例演示
从左到右的顺序排列。
Panel默认的布局管理器。
BorderLayout(边界布局管理器)
东,南,西,北,中
Frame默认的布局管理器。
GridLayout(网格布局管理器)
规则的矩阵
CardLayout(卡片布局管理器)
选项卡
GridBagLayout(网格包布局管理器)
非规则的矩阵
在使用监听器的时候, 需要定义一个类事件监听器接口.
通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
b.适配器原理
适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的
目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.
事件: 用户的一个操作
事件源: 被操作的组件
监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
GUI
01_设计模式(简单工厂模式概述和使用)
A:简单工厂模式概述又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例
B:优点
客户端不需要在负责对象的创建,从而明确了各个类的职责
C:缺点
这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护
D:案例演示
动物抽象类:public abstract Animal { public abstract void eat(); }
具体狗类:public class Dog extends Animal {}
具体猫类:public class Cat extends Animal {}
开始,在测试类中每个具体的内容自己创建对象,但是,创建对象的工作如果比较麻烦,就需要有人专门做这个事情,所以就知道了一个专门的类来创建对象。
public class AnimalFactory { private AnimalFactory(){} //public static Dog createDog() {return new Dog();} //public static Cat createCat() {return new Cat();} //改进 public static Animal createAnimal(String animalName) { if(“dog”.equals(animalName)) {} else if(“cat”.equals(animale)) { }else { return null; } } }
02_设计模式(工厂方法模式的概述和使用)
A:工厂方法模式概述工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现。
B:优点
客户端不需要在负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性
C:缺点
需要额外的编写代码,增加了工作量
D:案例演示
动物抽象类:public abstract Animal { public abstract void eat(); } 工厂接口:public interface Factory {public abstract Animal createAnimal();} 具体狗类:public class Dog extends Animal {} 具体猫类:public class Cat extends Animal {} 开始,在测试类中每个具体的内容自己创建对象,但是,创建对象的工作如果比较麻烦,就需要有人专门做这个事情,所以就知道了一个专门的类来创建对象。发现每次修改代码太麻烦,用工厂方法改进,针对每一个具体的实现提供一个具体工厂。 狗工厂:public class DogFactory implements Factory { public Animal createAnimal() {…} } 猫工厂:public class CatFactory implements Factory { public Animal createAnimal() {…} }
03_GUI(如何创建一个窗口并显示)
Graphical User Interface(图形用户接口)。Frame f = new Frame(“my window”); f.setLayout(new FlowLayout());//设置布局管理器 f.setSize(500,400);//设置窗体大小 f.setLocation(300,200);//设置窗体出现在屏幕的位置 f.setIconImage(Toolkit.getDefaultToolkit().createImage("qq.png")); f.setVisible(true);
04_GUI(布局管理器)
FlowLayout(流式布局管理器)从左到右的顺序排列。
Panel默认的布局管理器。
BorderLayout(边界布局管理器)
东,南,西,北,中
Frame默认的布局管理器。
GridLayout(网格布局管理器)
规则的矩阵
CardLayout(卡片布局管理器)
选项卡
GridBagLayout(网格包布局管理器)
非规则的矩阵
05_GUI(窗体监听)
Frame f = new Frame("我的窗体"); //事件源是窗体,把监听器注册到事件源上 //事件对象传递给监听器 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { //退出虚拟机,关闭窗口 System.exit(0); } });
06_设计模式(适配器设计模式)(掌握)
a.什么是适配器在使用监听器的时候, 需要定义一个类事件监听器接口.
通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
b.适配器原理
适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的
目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.
07_GUI 事件处理
事件处理事件: 用户的一个操作
事件源: 被操作的组件
监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
相关文章推荐
- IOS学习路线:IOS UI状态保持与恢复
- Qt数据库 QSqlQueryModel实例操作
- BuildConfig 中 DEBUG的作用
- [hadoop2.7.1]I/O之“泥坯块”SequenceFile前序知识
- 百度ueditor 拖文件或world 里面复制粘贴图片到编辑中 上传到第三方问题
- tornado 学习笔记8 模板以及UI
- [BZOJ 2079] Poi 2010 Guilds · 思路题
- 百度自动更新SDK的’requiresFadingEdge’错误
- EasyUi之datagird解读
- POJ-2533Longest Ordered Subsequence(LIS)
- EasyUI - 后台管理系统 - 登陆模块
- UITextView编辑时插入自定义表情-简单的图文混编
- 【LeetCode从零单刷】Longest Increasing Subsequence
- Requests介绍与安装
- IOS UILabel的一些使用小技巧
- UISearchBar样式修改
- 修改uitableViewCell选中时颜色
- control file sequential read 等待事件
- IOS之UIActionSheet& UIAlertView
- ant的build.xml,引入第三方包