day25025-多线程下GUI教案_第1页
day25025-多线程下GUI教案_第2页
day25025-多线程下GUI教案_第3页
day25025-多线程下GUI教案_第4页
day25025-多线程下GUI教案_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java核心之多线程&GUI第二十五天 多线程(下)&(GUI) 课程内容今天我们除了要对多线程做一些补充性的学习,还要学习到另一个知识点 (切换到下页PPT) 。这个知识点叫做GUI,对于GUI这一部分的内容,我们以后开发是基本上不会再使用到,那么讲它干嘛呢,注意了,是给大家就业班打基础,如果这个知识点学东了,对于就业班知识会起到很大的帮助。好,先来看我们多线程这里要学习到的内容(切换到下页PPT)今天的内容中绝大部分内容还是多线程的知识,也是一些大家必须知道到的知识,先来看要学习的内容,首先是、这两个视频讲的是一个经常会考到的知识点,单例模式,除了要理解,还要熟练代码的书写, 是多线程的任

2、务管理器,叫做计时器,以后开发设计多线程基本都会用到是今天的一个重点,是多线程使用的一种情况,其中会涉及到另一个重要的知识点叫做等待唤醒机制,大家需要注意掌握是jdk1.5中产生的另一种代码同步的方式,这种方式有什么好处呢,咱们拭目以待,接着是和这两个都是讲将多个线程集中管理的的方式,那么大家就要注意他们的区别,该明白什么时候用哪一个。以图片的形式帮助大家进一步理解多线程的执行流程,也是面试常问道的内容,要理解这个过程, 是多线程实现的另一种方式,就业班会接触到这种实现方式的用法,现在讲的目的就是混个眼熟这里的两个视频给大家着重讲了一个工厂方法模式,以理解为主,具体讲到再说。第一堂课时长:40

3、分钟内容:昨天作业题讲解,参见day25_homeworkday25作业 答案.txt(0分钟左右)01_多线程(单例设计模式)(掌握).avi02_多线程(Runtime类).avi 1.1 单例设计模式时长:23分钟1.1.1开场白视频摘要:* 单例设计模式:保证类在内存中只有一个对象。* 如何保证类在内存中只有一个对象呢?* (1)控制类的创建,不让其他类来创建本类的对象。private* (2)在本类中定义一个本类的对象。Singleton s;* (3)提供公共的访问方式。 public static Singleton getInstance()return s* 单例写法两种:*

4、 (1)饿汉式 开发用这种方式。* /饿汉式class Singleton /1,私有构造函数private Singleton()/2,创建本类对象private static Singleton s = new Singleton();/3,对外提供公共的访问方法public static Singleton getInstance() return s;public static void print() System.out.println(11111111111);* (2)懒汉式 面试写这种方式。多线程的问题?* /懒汉式,单例的延迟加载模式class Singleton /1,私

5、有构造函数private Singleton()/2,声明一个本类的引用private static Singleton s;/3,对外提供公共的访问方法public static Singleton getInstance() if(s = null)/线程1,线程2s = new Singleton();return s;public static void print() System.out.println(11111111111);* (3)第三种格式* class Singleton private Singleton() public static final Singleton

6、 s = new Singleton();/final是最终的意思,被final修饰的变量不可以被更改引言思路:简单引入引言示例:下面来看第一个知识点,单例设计模式,要求理解原理,熟练代码,作为面试中的考点,单例是一道常考题目! 1.1.2视频视频名称:01_多线程(单例设计模式)(掌握).avi讲师:冯佳视频长度:19分54秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路1.1.3总结与补充无1.1.4课堂提问与练习无1.1.5习题答案无1.2 Runtime类 时长:

7、17分钟1.2.1开场白视频摘要:* Runtime类是一个单例类* Runtime r = Runtime.getRuntime();/r.exec(shutdown -s -t 300);/300秒后关机r.exec(shutdown -a);/取消关机引言思路:简单引入引言示例:Runtime类是一个单例类,为什么要讲这个类呢,我们要不光知道什么是单例,还要知道这个模式的实际对应的类有哪些,并且还会用。 1.2.2视频视频名称: 02_多线程(Runtime类).avi讲师:冯佳视频长度:06分56秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差

8、、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路1.2.3总结与补充无1.2.4课堂提问与练习1、整理视频中的代码思路,记录疑惑点,并练习代码(8分钟)1.2.5习题答案1、整理视频中的代码思路,记录疑惑点,并练习代码(8分钟)(时间到了,下课休息)第二堂课时长:47分钟内容: 03_多线程(Timer)(掌握).avi04_多线程(两个线程间的通信)(掌握).avi05_多线程(三个或三个以上间的线程通信).avi 2.1 Timer类时长:12分钟2.1.1开场白视频摘要:* Timer类:计时器public class Demo5_Timer /* *

9、param args * 计时器 * throws InterruptedException */public static void main(String args) throws InterruptedException Timer t = new Timer();t.schedule(new MyTimerTask(), new Date(114,9,15,10,54,20),3000);while(true) System.out.println(new Date();Thread.sleep(1000);class MyTimerTask extends TimerTask Ove

10、rridepublic void run() System.out.println(起床背英语单词);引言思路:简单引入引言示例:Timer类是一个与多线程结合比较紧密的类,掌握它的用法,能够处理一些比较特殊的情况,来看看这个类怎么用。 2.1.2视频视频名称:03_多线程(Timer)(掌握).avi讲师:冯佳视频长度:10分33秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路2.1.3总结与补充无2.1.4课堂提问与练习无2.1.5习题答案无2.2 两个线程间的通信时

11、长:13分钟2.2.1开场白视频摘要:* 1.什么时候需要通信* 多个线程并发执行时, 在默认情况下CPU是随机切换线程的* 如果我们希望他们有规律的执行, 就可以使用通信, 例如每个线程执行一次打印* 2.怎么通信* 如果希望线程等待, 就调用wait()* 如果希望唤醒等待的线程, 就调用notify();* 这两个方法必须在同步代码中执行, 并且使用同步锁对象来调用引言思路:简单引入引言示例:线程间通信大家可以理解为创建两个或两个以上不同类型的线程的多个对象对同一个数据进行操作的情况,昨天我们讲的都是创建同一种类型的线程的多个对象对数据进行操作,知道了什么事线程通信,我们就要想了,那么为

12、什么需要线程间的通信,在线程通信的过程中,我们还要注意些什么,那么注意什么呢,主要早上提到过,叫做等待唤醒机制,这是线程通信中着重要掌握的一个知识。2.2.2视频视频名称: 04_多线程(两个线程间的通信)(掌握).avi讲师:冯佳视频长度:11分18秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路2.2.3总结与补充无2.2.4课堂提问与练习无2.2.5习题答案无 2.3 三个或三个以上间的线程通信 时长:22分钟2.3.1开场白视频摘要:* 多个线程通信的问题* no

13、tify()方法是随机唤醒一个线程* notifyAll()方法是唤醒所有线程* JDK5之前无法唤醒指定的一个线程* 如果多个线程之间通信, 需要使用notifyAll()通知所有线程, 用while来反复判断条件引言思路:简单引入。引言示例:刚才的视频中演示了两种线程间的通信,接下来来看升级版,三个或者三个以上的线程通信该怎么去实现。 2.3.2视频视频名称:05_多线程(三个或三个以上间的线程通信).avi讲师:冯佳视频长度:12分31秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的

14、问题: 见引言思路2.3.3总结与补充无2.3.4课堂提问与练习1、整理视频中的代码思路,记录疑惑点,并练习代码(8分钟)2.3.5习题答案1、整理视频中的代码思路,记录疑惑点,并练习代码(8分钟)(练习结束,下课休息)第三堂课时长:45分钟内容: 06_多线程(线程间的通信注意的问题).avi07_多08_多线程(线程组的概述和使用)(了解).avi08_多线程(线程组的概述和使用)(了解).avi09_多线程(线程的五种状态).avi10_多线程(线程池的概述和使用)(了解).avi 3.1 线程间的通信注意的问题 时长:08分钟3.1.1开场白视频摘要:/*1,在同步代码块中,用哪个对象

15、锁,就用哪个对象调用wait方法 * 2,为什么wait方法和notify方法定义在Object这类中? * 因为锁对象可以是任意对象,Object是所有的类的基类,所以wait方法和notify方法需要定义在Object这个类中 * 3,sleep方法和wait方法的区别? * a,sleep方法必须传入参数,参数就是时间,时间到了自动醒来 * wait方法可以传入参数也可以不传入参数,传入参数就是在参数的时间结束后等待,不传入参数就是直接等待 * b,sleep方法在同步函数或同步代码块中,不释放锁,睡着了也抱着锁睡 * wait方法在同步函数或者同步代码块中,释放锁引言思路:简单引入引言

16、示例:这节课多数都是了解性的内容,重点在于理解,下面先对刚才线程通信中讲的的几个方法,给大家说明一下他们之间要注意的地方,注意他们的用法和区别。 3.1.2视频视频名称: 06_多线程(线程间的通信注意的问题).avi讲师:冯佳视频长度:06分24秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路3.1.3总结与补充无3.1.4课堂提问与练习无 3.1.5习题答案无3.2 JDK1.5的新特性互斥锁时长:11分钟3.2.1开场白视频摘要:* 1.同步* 使用Reentran

17、tLock类的lock()和unlock()方法进行同步* 2.通信* 使用ReentrantLock类的newCondition()方法可以获取Condition对象* 需要等待的时候使用Condition的await()方法, 唤醒的时候用signal()方法* 不同的线程使用不同的Condition, 这样就能区分唤醒的时候找哪个线程了引言思路:简单引入引言示例:接下来讲到的内容叫做互斥所,是在jdk1.5中出现的,也是实现线程同步的一种方式,相对同步代码块、同步方法来说,它更强大,也更好理解一些,更符合我们的思维习惯,但从使用习惯上来说,无论是互斥锁还是synchronized都是一样

18、的,看个人喜好!3.2.2视频视频名称:07_多线程(JDK1.5的新特性互斥锁)(掌握).avi讲师:冯佳视频长度:09分02秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路3.2.3总结与补充无3.2.4课堂提问与练习无3.2.5习题答案无3.3 线程组的概述和使用 时长:12分钟3.3.1开场白视频摘要:* A:线程组概述* Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。* 默认情况下,所有的线

19、程都属于主线程组。* public final ThreadGroup getThreadGroup()/通过线程对象获取他所属于的组* public final String getName()/通过线程组对象获取他组的名字* 我们也可以给线程设置分组* 1,ThreadGroup(String name) 创建线程组对象并给其赋值名字* 2,创建线程对象* 3,Thread(ThreadGroup?group, Runnable?target, String?name) * 4,设置整组的优先级或者守护线程* B:案例演示* 线程组的使用,默认是主线程组* MyRunnable mr =

20、new MyRunnable();Thread t1 = new Thread(mr, 张三);Thread t2 = new Thread(mr, 李四);/获取线程组/ 线程类里面的方法:public final ThreadGroup getThreadGroup()ThreadGroup tg1 = t1.getThreadGroup();ThreadGroup tg2 = t2.getThreadGroup();/ 线程组里面的方法:public final String getName()String name1 = tg1.getName();String name2 = tg2

21、.getName();System.out.println(name1);System.out.println(name2);/ 通过结果我们知道了:线程默认情况下属于main线程组/ 通过下面的测试,你应该能够看到,默任情况下,所有的线程都属于同一个组System.out.println(Thread.currentThread().getThreadGroup().getName();* 自己设定线程组* / ThreadGroup(String name)ThreadGroup tg = new ThreadGroup(这是一个新的组);MyRunnable mr = new MyRun

22、nable();/ Thread(ThreadGroup group, Runnable target, String name)Thread t1 = new Thread(tg, mr, 张三);Thread t2 = new Thread(tg, mr, 李四);System.out.println(t1.getThreadGroup().getName();System.out.println(t2.getThreadGroup().getName();/通过组名称设置后台线程,表示该组的线程都是后台线程tg.setDaemon(true);引言思路:简单引入引言示例:线程组,就是将多

23、个线程划分到一组,目的是为了方便管理,那么想想咱们平时分组的依据是什么,是将有相同功能的多个成员分到一组,比如说公司中有美工组,安卓开发组,WEB开发组等等。但是在实际开发中一般的项目不需要用到线程组,只有在大规模的项目中,为了提高线程的操作效率和管理,但是说不定大家以后就会参与到较大的项目中去呢,所以这个大家还是需要了解一下,知道怎么用,那么以后如果真的用到,也就不会太陌生! 3.3.2视频视频名称: 08_多线程(线程组的概述和使用)(了解).avi讲师:冯佳视频长度:10分13秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正

24、常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路3.3.3总结与补充无3.3.4课堂提问与练习无3.3.5习题答案无 3.4 线程的五种状态时长:05分钟3.4.1开场白视频摘要:* 看图说话* 新建,就绪,运行,阻塞,死亡引言思路:简单引入引言示例:(若学员状态不佳,适当调整)下面讲的内容可以叫做线程的生命周期,对于生命周期,可以理解为事务的执行从开始到结束过程中的所存在的各种状态,到了就业班我们还会学习到其他一些知识体系的生命周期,基本都会有对应的生命周期图,对于生命周期的学习可以加深大家对相关知识的理解!。 3.4.2视频视频名称: 09_多线程(线程的五种状态).avi讲师

25、:冯佳视频长度:03分17秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路3.4.3总结与补充无3.4.4课堂提问与练习无3.4.5习题答案无 3.5 线程池的概述和使用 时长:09分钟3.5.1开场白视频摘要:* A:线程池概述* 程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互。而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池。线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态

26、,等待下一个对象来使用。在JDK5之前,我们必须手动实现自己的线程池,从JDK5开始,Java内置支持线程池* B:内置线程池的使用概述* JDK5新增了一个Executors工厂类来产生线程池,有如下几个方法* public static ExecutorService newFixedThreadPool(int nThreads)* public static ExecutorService newSingleThreadExecutor()* 这些方法的返回值是ExecutorService对象,该对象表示一个线程池,可以执行Runnable对象或者Callable对象代表的线程。它提

27、供了如下方法* Future submit(Runnable task)* Future submit(Callable task)* 使用步骤:* 创建线程池对象* 创建Runnable实例* 提交Runnable实例* 关闭线程池* C:案例演示* 提交的是Runnable* / public static ExecutorService newFixedThreadPool(int nThreads)ExecutorService pool = Executors.newFixedThreadPool(2);/ 可以执行Runnable对象或者Callable对象代表的线程pool.su

28、bmit(new MyRunnable();pool.submit(new MyRunnable();/结束线程池pool.shutdown();引言思路:简单引入引言示例:刚才我们提到了线程组,那么线程池,就是一个更大的概念了,如果组的目的是为了统一管理,那么池就像是一个部门,负责统一调配每个成员,目的是为了防止成员过多,而导致程序卡死。 3.5.2视频视频名称: 10_多线程(线程池的概述和使用)(了解).avi讲师:冯佳视频长度:07分14秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注

29、意的问题: 见引言思路3.5.3总结与补充这节课的内容当中,对于互斥锁和线程的五种状态下去之后要好好看一下,这节课没有要着重练习的代码,但是也要通过将代码将知识点串起来,更好的理解其中的知识点!3.5.4课堂提问与练习无3.5.5习题答案无 第四堂课时长:48分钟内容: 11_多线程(多线程程序实现的方式3).avi12_设计模式(简单工厂模式概述和使用).avi13_设计模式(工厂方法模式的概述和使用).avi14_GUI(如何创建一个窗口并显示).avi 4.1 多线程程序实现的方式3 时长:08分钟4.1.1开场白视频摘要:* 提交的是Callable* / 创建线程池对象Executo

30、rService pool = Executors.newFixedThreadPool(2);/ 可以执行Runnable对象或者Callable对象代表的线程Future f1 = pool.submit(new MyCallable(100);Future f2 = pool.submit(new MyCallable(200);/ V get()Integer i1 = f1.get();Integer i2 = f2.get();System.out.println(i1);System.out.println(i2);/ 结束pool.shutdown();public class

31、 MyCallable implements Callable private int number;public MyCallable(int number) this.number = number;Overridepublic Integer call() throws Exception int sum = 0;for (int x = 1; x = number; x+) sum += x;return sum;* 多线程程序实现的方式3的好处和弊端* 好处:* 可以有返回值* 可以抛出异常* 弊端:* 代码比较复杂,所以一般不用引言思路:简单引入引言示例:下面要学习另一种实现多线程

32、的方式,一般情况下我们不会使用这中国实现多线程的方式,只有在一些特定的情况下才会使用,就业班会有这方面的使用,具体是怎么回事,我们来看看。 4.1.2视频视频名称:11_多线程(多线程程序实现的方式3).avi讲师:冯佳视频长度:06分10秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路4.1.3总结与补充通过刚才的视频,我们了解到这种实现方式的一个好处就是可以有返回值,在就业班我们会接触到一种叫做回调机制,会使用到这种线程的实现方式,下面给大家一些时间,将这种实现方式整

33、理一下,下去不用做过多的练习,但是原理上一定要明白。4.1.4课堂提问与练习无4.1.5习题答案无4.2 简单工厂模式概述和使用时长:12分钟4.2.1开场白视频摘要:* A:简单工厂模式概述* 又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例* B:优点* 客户端不需要在负责对象的创建,从而明确了各个类的职责* C:缺点* 这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护* D:案例演示* 动物抽象类:public abstract Animal public abstract void eat();

34、* 具体狗类: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();/改

35、进public static Animal createAnimal(String animalName) if(“dog”.equals(animalName) else if(“cat”.equals(animale) else return null;引言思路:简单引入引言示例:下面要学习一个新的设计模式叫做工厂设计模式,而工厂设计模式又被分为了两种, java中的每种设计都有优缺点,要根据每种设计的优缺点来确定应该使用哪一种,我们先来看第一种工厂模式,简单工厂模式具体的使用细节。 4.2.2视频视频名称: 12_设计模式(简单工厂模式概述和使用).avi讲师:冯佳视频长度:10分24秒

36、录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路4.2.3总结与补充无4.2.4课堂提问与练习无4.2.5习题答案无 4.3 工厂方法模式的概述和使用时长:08分钟4.3.1开场白视频摘要:* A:工厂方法模式概述* 工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现。* B:优点* 客户端不需要在负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增

37、强了系统的扩展性* 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 开始,在测试类中每个具体的内容自己创建对象,但是,创建对象的工作如果比较麻烦,就需要有人专门做这个事情,所以就知道了一

38、个专门的类来创建对象。发现每次修改代码太麻烦,用工厂方法改进,针对每一个具体的实现提供一个具体工厂。狗工厂:public class DogFactory implements Factory public Animal createAnimal() 猫工厂:public class CatFactory implements Factory public Animal createAnimal() 引言思路:简单引入引言示例:工厂方法模式相对于简单工厂模式的一大优点就是有利于后期维护,但是所有的好处都是要付出代价的就比如我们的同步虽然提高了安全性,但是却降低了效率,那么工厂方法的模式除了提高

39、了维护性,还有那些优缺点,一起来了解一下。 4.3.2视频视频名称: 13_设计模式(工厂方法模式的概述和使用).avi讲师:冯佳视频长度:06分18秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路4.3.3总结与补充无4.3.4课堂提问与练习无4.3.5习题答案无 4.4 如何创建一个窗口并显示时长:20分钟4.4.1开场白关于GUI这里我们学习的目的已经跟大家说明过了,内容不一一介绍了,目的只有两个,1个是让大家熟悉一些事件处理的的概念,比如什么是监听、什么是事件、什

40、么是适配器等这些概念,2自然就是给大家就业班奠定基础,在熟悉这些概念的基础上,懂的一些基本的事件处理机制和过程,现在能听懂就去熟练掌握,听不懂,就尽量理解,会对就业班的课程有很大帮助。(跳转到下个ppt)视频摘要:* Graphical User Interface(图形用户接口)。* Frame f = new Frame(“my window”);f.setLayout(new FlowLayout();/设置布局管理器f.setSize(500,400);/设置窗体大小f.setLocation(300,200);/设置窗体出现在屏幕的位置f.setIconImage(Toolkit.g

41、etDefaultToolkit().createImage(qq.png);f.setVisible(true);引言思路:简单引入引言示例:先来看第一个内容,大家是否还记得eclipse是一个纯java开发的程序,如果我们自己想构建一个想eclipse界面该怎么做呢,那么GUI就可以实现类似的效果,接下来咱们要学习的就是一个java中如何构建操作界面的知识,比如咱们的txt在关闭的时候,会弹出来一个提示框,提示是否保存,今天我们就来学习他们是如何制作的!你可能会发现,比你想想中简单,只要认真听,你想不懂都难!。 4.4.2视频视频名称: 14_GUI(如何创建一个窗口并显示).avi讲师:

42、冯佳视频长度:07分09秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路4.4.3总结与补充无4.4.4课堂提问与练习1、整理视频中的代码思路,记录疑惑点,并练习代码(10分钟)4.4.5习题答案1、整理视频中的代码思路,记录疑惑点,并练习代码(10分钟)(时间到了,下课休息)第五堂课时长:50分钟内容: 15_GUI(布局管理器).avi16_GUI(窗体监听).avi17_GUI(鼠标监听).avi18_GUI(键盘监听和键盘事件).avi 19_GUI(动作监听).

43、avi5.1 布局管理器 时长:07分钟5.1.1开场白视频摘要:* FlowLayout(流式布局管理器)* 从左到右的顺序排列。* Panel默认的布局管理器。* BorderLayout(边界布局管理器)* 东,南,西,北,中* Frame默认的布局管理器。* GridLayout(网格布局管理器)* 规则的矩阵* CardLayout(卡片布局管理器)* 选项卡* GridBagLayout(网格包布局管理器)* 非规则的矩阵引言思路:简单引入引言示例:这节课我们就来着重讲解GUI,不管是现在还是在以后的学习中,直接接触到与界面相关的知识,就一定会有布局这样的一个概念,来看一下什么叫做

44、布局,。5.1.2视频视频名称:15_GUI(布局管理器).avi讲师:冯佳视频长度:05分14秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路5.1.3总结与补充无5.1.4课堂提问与练习无5.1.5习题答案无5.2窗体监听 时长:18分钟5.2.1开场白视频摘要:Frame f = new Frame(我的窗体);/事件源是窗体,把监听器注册到事件源上/事件对象传递给监听器f.addWindowListener(new WindowAdapter() public v

45、oid windowClosing(WindowEvent e) /退出虚拟机,关闭窗口System.exit(0););引言思路:简单引入引言示例:下面来接触这样一个概念,叫做监听,第一次接触这个概念会比较陌生,其实很好理解, 比如说我现在预先告诉大家等会我站起来抬起双手,大家就开始鼓掌,放下就结束(是不是很熟悉,小沈阳的小品),!那么问题来了,我们是有耳朵,眼睛,嘴巴的,所以能很容易实现这样的一个监听过程,。关键是电脑没有我们这么智能,那么怎么办,这些操作让大家写挂了吧。所以系统会提供一些固定的监听方式,如果我点击鼠标了,将点击鼠标所要做的操作给大家空出来,让大家往里面填写代码,是不是就很

46、简单了,那么对应的,我们如果想按键盘让电脑给一个反应,那就找键盘对应的监听方式,以此类推。所以我说了,只要你掌握了这种原理,想不会都难,那么下面来看一下具体的操作方式,首先是窗体监听,做完给大家练习一会,只要能掌握一个,后面的也就简单了。5.2.2视频视频名称: 16_GUI(窗体监听).avi讲师:冯佳视频长度:08分22秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路5.2.3总结与补充无5.2.4课堂提问与练习1、整理视频中的代码思路,记录疑惑点,并练习代码(10分

47、钟)5.2.5习题答案1、整理视频中的代码思路,记录疑惑点,并练习代码(10分钟)(练习完成,切换ppt)5.3 鼠标监听时长:06分钟5.3.1开场白视频摘要:无引言思路:简单引入引言示例:通过刚才的练习,相信大家对于事件的监听都有了自己的理解,接下来咱们看看别的监听,鼠标监听也是常见的一种。5.3.2视频视频名称:17_GUI(鼠标监听).avi讲师:冯佳视频长度:03分48秒录制时间:2015年视频音质:优(优、良、一般、差、很差)视频质量:优(优、良、一般、差、很差) 视频难度:正常(难、正常)视频难点和导师提醒学生注意的问题: 见引言思路5.3.3总结与补充无5.3.4课堂提问与练习无5.3.5习题答案无5.4 键盘监听和键盘事件 时长:08分钟5.4.1开场白视频摘要:无引言思路:简单引入引言示例:下一个,键盘监听,另外还有键盘事件,注意理解何谓事件,大家可以理解为一种事件就是一种情况,那怎么键盘上的情况可就多的去了,啥意思,一个按键不就是一种情况么,来看看到底怎么回事,要注意,咱们自己也练习了监听的操作,那么在老冯讲的过程中,不要等着老师讲,一边看,在老冯演示的过程中,如果是自己能不能想出来。5.4.2视频视频名称:18_GUI(键盘监听和键盘事件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论