07ChapterJava基础课件第七章

合集下载

java 学习课件第7章

java 学习课件第7章

5
7.1.3 事件处理方法

applet利用事件处理来实现人机交互功能, 最主要的事件处理方法是 handleEvent(), 对于人机交互来说,鼠标动作和键盘动作都 是常见的事件,要处理事件,applet 必须重 写handleEvent()或其他相应事件的处理方 法。
6பைடு நூலகம்
7.1.4 加入java.awt的方法

7.6 声音

目前在Internet上支持的声音文件格式有许多 种,常见的 有.wav,.au,.mod,.mid,.snd,.voc 等, 一般由不同的声音演奏程序来演奏这些不同 格式的声音文件。若要用Java程序来演奏, 则这些格式必须用声音格式转换程序转换为 Sun .au格式,因为目前Java的应用编程接口 仅支持一种声音格式: 8位,μlaw,8000Hz, 单通道的 .au 文件。

25
7.7 动画

动画(animation)是指活动的图形或图像,它 与影像(video)不同,video是播放视频信号而 得到的电视画面,而动画是顺序播放一序列 静止画面,这些画面看起来相同,但有细微 差别, 它们连续不断地显示就产生运动的视 觉效果。Java目前还没有支持video的能力, 但可以支持动画的播放。
7.1 小应用程序

小应用程序由Applet类定义,java.applet包主 要有Applet类和AppletContext、AppletStub、 AudioClip接口,Applet类定义了applet的各种 行为,并提供了实现applet的图形用户界面, 处理鼠标或键盘事件等方法。AppletContext 接 口 对 应 于 applet 的 环 境 , AppletStub 作 为 applet和浏览器环境(或小程序查看器)之间的 接口,AudioClip 接口提供了声音的高层抽象。

java 第七章

java 第七章

Java实例——成员变量同名
class SuperA{ private int privateData=10; public int pubSuperData; private void privateMethod(){ System.out.println("super privateData="+privateData); System.out.println("Super class's privateMethod"); } public void pubSuperMethod(){ privateMethod(); System.out.println("Super class's publicSuperMethod"); } }
Java实例——方法的覆盖
class Shape{ public int y; public Shape(){ y=20; System.out.println("this is a Constractor of shape"); } public void measure(){ System.out.println("super_y="+y); } } class Rectangle extends Shape{ public int y; public void measure(){ super.measure(); //引用父类的measure()方法 y=super.y+y;
class Shape{ public int x,y; private int m,n; public Shape(){ //父类Shape的构造方法 x=10; y=20; m=100; n=200; System.out.println("x="+x+" "+"y="+y); System.out.println("this is a Constractor of shape"); } public void measure(){ int s; s=x*y; System.out.println("result="+s); } private void show(){ System.out.println("x="+x+" "+"y="+y); } }

第7章Java程序设计基础与实践电子教案精品PPT课件

第7章Java程序设计基础与实践电子教案精品PPT课件
height指定新的大小 • setSize(int width,int height) • 设置窗口的大小,窗口在屏幕出现的默认位置是(0,0) • setVisible(Boolean b) • 设置窗口是可见还是不可见,窗口默认是不可见的
7 布局管理和容器
JFrame(续)
• setResizable(Boolean b) • 设置窗口是否可调整大小,窗口默认是可调整大小的 • setExtendedState(int state) • 设置窗口的扩展状态,其中参数state取Frame类中的下列类常量
:MAXIMIZED_HORIZ、MAXIMIZED_VERT、MAXIMIZED_BOTH • setDefaultCloseOperation(int operation) • 设置用户在此窗体上发起“close” 时默认执行的操作dispose()窗
口调用该方法可以撤销当前窗口,并释放当前窗口所使用的资源 • add(Component comp) • 将指定组件追加到此容器的尾部pack()调整此窗口的大小,以适
7 布局管理和容器
JFrame(续)Байду номын сангаас
• 例如,在JFrame窗口上放置一个按钮。程序主要代码如下:
• JFrame jf = new JFrame("JFrame");//采用构造方法JFrame(Strings)
7 布局管理和容器
常用容器
• Container类是所有容器类的父类,可以将组件添加到容器中。 Container也是Component的子类, 因此也可以作为组件添加到其 他容器上。
• Object的主要子类如图7.1所示。 • 容器从功能上可分为顶层容器、中间容器和特殊容器三种。

Java语言程序设计基础教程课件(第7章)

Java语言程序设计基础教程课件(第7章)

currentThread()方法是Thread类的类方
法,可以直接通过类名调用,该方法返回
当前正在使用CPU资源的线程。
6.Interrupt()方法
interrupt()方法常用来“吵醒”休眠的线程。但 A B 线程调用sleep方法处于休眠状态时,一个占有 阻塞状态 CPU资源的线程可以调用interrupt方法唤醒休 A.ingerrupt() Sleep() 眠中的线程自己。会导致休眠的线程发生 可运行状态 InterruptedException异常,结束休眠,重新 排队等待CPU资源,执行sleep()后的代码。
7.stop()方法 _已过时 通过调用线程的实例方法stop()来终止线 程。线程终止后,其生命周期结束了,即 进入死亡态,终止后的线程不能再被调度 执行。
8.join()方法 一个线程在占有CPU资源期间,可以让其 他线程调用join()方法和本线程联合。当 前线程等待调用该方法的线程结束后,再 重新排队等待CPU资源,以便恢复执行。 如果当前线程准备联合的线程已经结束, 也就是start方法体已经执行完,那么不 会产生任何效果。

r

q p
7.6.2 互斥锁或对象锁
为解决操作的不完整性问题,引入了对象
互斥锁,来保证共享数据操作的完整性。
每个对象都对应于一个可称为“互斥锁” Synchronized(object o){
的标记,互斥锁可以保证在任一时刻,只 需要一次执行完的语句块
} 能有一个线程访问该对象。
public void push(char c) { 同步代码 synchronized (this) { data[idx] = c; idx++; } 同步方法 } public synchronized char pop() { 注意:idx--; 1、所有存取共享数据的方法必须在同一把锁上同步 return data[idx]; 2、由同步锁保护的数据应为private的 }

JAVA第07章

JAVA第07章

版本 1.0
课程 7
幻灯片 8,共 18 张
Java 编程语言—第7章
枚举的类型
教材7-11页:
• 老格式的枚举类型,见教材7-11页。 • 思考:如何类似教材7-11,定义的常 量,如果允许用户进行组合使用,则 数字应该有什么规律?
版本 1.0
课程 7
幻灯片 9,共 18 张
Java 编程语言—第7章
教材7-4页: 静态方法中,只能调用静态方法, 也只能访问静态的变量。 注意7-5靠下的代码,写法是错误 的,因为静态方法访问了普通变 量。
版本 1.0
课程 7
幻灯片 4,共 18 张
Java 编程语言—第7章 静态初始化
教材7-6页: 在一个类中,编写一个static块, 参考教材7-6的代码。 一般建议,尽量不选择static块。
版本 1.0
课程 7
幻灯片 7,共 18 张
Java 编程语言—第7章
枚举的类型
教材7-10页:
enum 类型字段由一组固定的常量组成。 可使用 enum 关键字来定义 enum 类型。例如,指定一周每 一天的 enum 类型: public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } enum 类主体可包括方法和其他字段。 编译器当创建 enum 时自动添加一些特殊的方法。 所有 enums 从 ng.Enum 显示扩展。因为 Java 不 支持多重继承,enum 不能扩展为任何别的内容。
版本 1.0
课程 7
幻灯片 16,共 18 张
Java 编程语言—第7章
接口(续)
接口的使用: 声明期望实现一个或更多的类的方法 确定对象的编程接口而无需显示类的实际 主体 捕捉非相关类之间的相似性而无需强制类 的关系 通过声明实现几个接口的类来模拟多重继 承

07ChapterJava基础课件第七章

07ChapterJava基础课件第七章

2019年1月22日星期二
Java事件分类
2019年1月22日星期二
Java GUI事件及相应监听器接口(1)
事件类型 Action Item Mouse 相应监听器接口 ActionListener ItemListener MouseListener 监听器接口中的方法 actionPerformed(ActionEvent) itemStateChanged(ItemEvent) mousePressed(MouseEvent) mouseReleased(MouseEvent) mouseEntered(MouseEvent) mouseExited(MouseEvent) mouseClicked(MouseEvent) mouseDragged(MouseEvent) mouseMoved(MouseEvent) keyPressed(KeyEvent) keyReleased(KeyEvent) keyTyped(KeyEvent) focusGained(FocusEvent) focusLost(FocusEvent)


默认的布局管理器是BorderLayout
可使用setLayout()方法改变其默认布局管理器
2019年1月22日星期二
窗口

JFrame类是Frame的子类,是Swing中的组件 Panel也是一种窗口,但不能单独使用,必须放 在其它容器(如Frame)内使用 Panel的默认布局管理器是FlowLayout JPanel类是JComponent的子类,是Swing中的组 件
AWT
2019年1月22日星期二
常用Swing组件
Swing组件从功能上可以划分为以下几类:

java第7章

java第7章

图示:
示例程序
public class c7_1 { public static void main(String[] args) { int a,b,c; a=67; b=0; c=a/b; System.out.println(a+"/"+b+"="+c);}} 运行结果: 运行结果: Exception in thread "main" ng.ArithmeticException: /by zero At c7_1.main(c11_1.java:8)
示例程序
public class c7_3 { public static void main(String [] args) { try {throw new NullPointerException("自编异常 自编异常");} 自编异常 catch(NullPointerException e) {System.out.println("exception:"+e);} } } 运行结果: 运行结果: Exception: ng.NullPointerException: 自编异常
第7章 异常处理
• 概述 • 7.1 JAVA
异常是指发生在正常情况以外的事件, 异常是指发生在正常情况以外的事件,例如 是指发生在正常情况以外的事件 用户输入错误、除数为零、需要的文件不存在、 用户输入错误、除数为零、需要的文件不存在、 文件打不开、数组下标越界、内存不足等等。 文件打不开、数组下标越界、内存不足等等。 程序在运行过程中发生各种错误或异常是不可 避免的。一个好的应用程序, 避免的。一个好的应用程序,除了具备用户要 求的功能外, 求的功能外,还要求能预见程序执行过程中可 能产生的各种异常, 能产生的各种异常,并把处理异常的功能包括 在用户程序中。我们设计程序时, 在用户程序中。我们设计程序时,要充分考虑 到各种意外情况, 到各种意外情况,不仅要保证应用程序的正确 而且还应该具有较强的容错能力。 性,而且还应该具有较强的容错能力。这种对 异常情况给予恰当处理的技术就是异常处理 异常处理。 异常情况给予恰当处理的技术就是异常处理。

Java07(第7章)

Java07(第7章)

线程的同步
• 问题的解决
– 同步: 用synchronized关键字前缀给针对共享 资源的操作加锁;同步方法、同步块
synchronized void push(); synchronized int pop();
– 实现机制:管程 银行取款例子例子7-7 作业:模拟医院挂号。
强调: 1、join()方法;例如:Example_join.java 2、线程优先级;TestPriority.java 3、yield()方法;TestYield.java 4、线程间需协调与通讯:生产者/消费 者问题(wait(),notify(),notifyAll()); TestMultiThread.java 查阅资料,了解: 5、ThreadLocal类; 6、ThreadGroup类与destroy()方法; 7、interrupt()方法;8、例7-8
2、线程的生命周期 、
• 线程要经历创 就绪、 建、就绪、运 行、阻塞和死 亡等5个状态 亡等 个状态 , 称为生命周期。 称为生命周期。
线程状态
消亡 new Thread(..) 新建状态 run() 结束 stop() CPU调度 就绪状态 yield() I/O完成 sleep时间到 notify() I/O sleep() 等待状态 wait() 执行状态
Java语言程序设计 语言程序设计
清华大学出版社
第7章 多线程与异常处理
第7章 章
多线程与异常处理
1、多线程的概念 、 2、线程的使用 、 3、线程同步 、 4、异常处理 、
7.1 多线程的概念
1、线程与多线程 、 2、线程的生命周期 、 3、线程的优先级 、
程序 - 进程 - 线程
• 程序是为完成特定任务、用某种语言编写的 一组指令的集合。指一段静态的代码。 • 进程是程序的一次执行过程,是系统进行调 度和资源分配的一个独立单位。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



2013年11月26日星期二
AWT组件相关类的层次关系
图7-1 Java AWT组件类的层次关系
2013年11月26日星期二
Swing的类层次关系
java.awt.Container javax.swing.Jcomponent JTextComponent
AbstractButton
Jpanel JComboBox JLabel Jtree …

2013年11月26日星期二
窗口

JPanel类及其子类可以直接添加组件
JFrame不能直接添加组件
JFrame可以使用两种方法添加组件

frame.getContentPane().add(...) JPห้องสมุดไป่ตู้nel contentPane = new JPanel(); frame.setContentPane(contentPane);
Window
WindowListener
Container Text
ContainerListener TextListener
2013年11月26日星期二
7.3 AWT/Swing组件
• 与AWT和Swing相关的包 • AWT组件包:java.awt.* • Swing组件包:javax.swing.* • 事件包:java.awt.event.*
2013年11月26日星期二
Java事件分类
2013年11月26日星期二
Java GUI事件及相应监听器接口(1)
事件类型 Action Item 相应监听器接口 ActionListener ItemListener 监听器接口中的方法 actionPerformed(ActionEvent) itemStateChanged(ItemEvent) mousePressed(MouseEvent) mouseReleased(MouseEvent) mouseEntered(MouseEvent) mouseExited(MouseEvent) mouseClicked(MouseEvent) mouseDragged(MouseEvent) mouseMoved(MouseEvent) keyPressed(KeyEvent) keyReleased(KeyEvent) keyTyped(KeyEvent) focusGained(FocusEvent) focusLost(FocusEvent)
2013年11月26日星期二
组件类型
Button Canvas Checkbox CheckboxMenuItem Choice Component Container Dialog Frame Label List Menu MenuItem Panel Scrollbar ScrollPane TextArea TextField Window
2013年11月26日星期二

7.2事件处理机制
事件(Event) – 一个对象,它描述了发生什么事情 事件源(Event source) – 产生事件的组件 监听器接口(事件处理方法) – 能够接收、解析 和处理事件类对象、实现和用户交互的方法
用户鼠标点击 ①

actionPerformed(ActionEvent e){ …… }
AWT
2013年11月26日星期二
常用Swing组件
Swing组件从功能上可以划分为以下几类:
顶层容器:JFrame、JApplet、JWindow和JDialog。
普通容器:JPanel,JScrollPane ,JSplitPane和 JTabbedPane, 也叫中间层容器。
特殊容器:JInternalFrame,JLayerPane,JRootPane和 JToolBar,能够起到特殊作用的容器。 基本组件:如JButton,JComboxBox,JList,JMenu, JSlider和JTextField,是应用较多的普通组件。


默认的布局管理器是BorderLayout
可使用setLayout()方法改变其默认布局管理器
2013年11月26日星期二
窗口

JFrame类是Frame的子类,是Swing中的组件 Panel也是一种窗口,但不能单独使用,必须放 在其它容器(如Frame)内使用 Panel的默认布局管理器是FlowLayout JPanel类是JComponent的子类,是Swing中的组 件
2013年11月26日星期二
事件处理模型(Delegation Model)
一个事件可以被发送到多个不同的处理方法
如果关注某个组件产生的事件 ,则可以在该组件上 注册适当的事件处理方法,实际上注册的事件处理 者方法所属类型的一个对象----事件监听器
2013年11月26日星期二
事件处理模型
Java GUI设计中,通过注册监听器的方式 对所关注的事件源进行监控。
2013年11月26日星期二
Component及其子类常用属性和方法
属性名称 背景颜色 边界 光标 拖放目标 使能 字体 前景色 地区 位置 部件名称 尺寸 可见性 设置属性的方法 void setBackground(Color) void setBounds(Rectangle) void setBounds(int,int,int,int) void setCursor(Cursor) void setDropTarget(DropTarget) void setEnabled(boolean) void setFont(Font) void setForeground(Color) void setLocale(Locale) void setLocation(Point) void setLocation(int,int) void setName(String) void setSize(Dimension) void setVisible(boolean) 获取属性的方法 Color getBackground() Rectangle getBounds() Cursor getCursor() DropTarget getDropTarget() boolean isEnabled() Font getFont() Color getForeground() Locale getLocale() Pont getLocation() Point getLocationOnScreen( ) String getName() Dimension getSize() boolean getVisible()
2013年11月26日星期二
Java中GUI容器类层次
2013年11月26日星期二
窗口

Frame和Panel是2种常见的窗口
Frame类是抽象类Window的子类
Frame对象显示效果是一个窗口,带有标题和 大小调整按钮 默认初始化为不可见,可使用setVisible(true)方 法使之变为可见
第7章 Java GUI应用程序设计
内容提要:
AWT与Swing 事件处理机制 AWT/Swing组件 常用事件 绘图

2013年11月26日星期二
7.1 AWT与Swing

GUI -- Graphical User Interface AWT-- AbstractWindow Toolkit AWT中定义了多种类和接口,用于在Java Application/Applet中进行GUI设计
2013年11月26日星期二
7.3.1 容器(Container)


容器(Container)实际上是Component的子类,因 此容器类对象本身也是一个组件,具有组件的 所有性质,另外还具有容纳其它组件和容器的 功能。 容器类对象可使用方法add()添加组件 两种主要的容器类型

Window: 可自由停泊的顶级窗口 Panel:可作为容器容纳其它组件,但不能独立存在, 必须被添加到其它容器中(如Window 或 Applet)
Mouse
MouseListener
Mouse Motion
MouseMotionListener
KeyListener FocusListener
Key Focus
2013年11月26日星期二
Java GUI事件及相应监听器接口(2)
事件类型 Adjustment Component 相应监听器接口 AdjustmentListener ComponentListener 监听器接口中的方法 adjustmentValueChanged (AdjustmentEvent) componentMoved(ComponentEvent) componentHidden (ComponentEvent) componentResized(ComponentEvent) componentShown(ComponentEvent) windowClosing(WindowEvent) windowOpened(WindowEvent) windowIconified(WindowEvent) windowDeiconified(WindowEvent) windowClosed(WindowEvent) windowActivated(WindowEvent) windowDeactivated(WindowEvent) componentAdded(ContainerEvent) componentRemoved(ContainerEvent) textValueChanged(TextEvent)

常用方法

2013年11月26日星期二
JFrame应用示例
相关文档
最新文档