T086ѧϰ�� | վ��ѧԺ | �����ĵ� | ���� | Ъ���� | IP��ַ��ѯ | �������� | ���ջ��� | �����ֵ� | ���ù��� | ������Ϣ��ѯ

�ʼǣ������� Java���̺߳�Java Applet

�� ��Դ�����ߵ�Blog���ߣ��������� ����ʱ�䣺2004-09-16 | ���壺�� �� С��
[����]����ǰ˼��������1. ʲô���̣߳����ͽ�����ʲô���������÷�����ʲô������2. Java���߳�������ʵ�ֵģ�����3. Java���߳������ε��ȵģ�����4. Java�еĶ��߳���ʲô�ص㣿ͬ���ͻ�����ԭ��������ʵ�ֵģ�����5. ʲ...

����ǰ˼����
����1. ʲô���̣߳����ͽ�����ʲô���������÷�����ʲô��
����2. Java���߳�������ʵ�ֵģ�
����3. Java���߳������ε��ȵģ�
����4. Java�еĶ��߳���ʲô�ص㣿ͬ���ͻ�����ԭ��������ʵ�ֵģ�
����5. ʲô��Java Applet������Application��������ʲô��
����6. �����Java Applet��
����7. Applet���������ڼ���Ҫ������ʲô��
����8. Applet����;���÷���ʲô��
6��1 �̼߳���

�߳����������ƣ���һ������ij���ض����ܵĴ��룬�dz����е���˳���������ƣ��������̲�ͬ���ǣ�ͬ���Ķ����߳��ǹ���һ���ڴ��ռ���һ��ϵͳ��Դ�����̱߳���������ͨ��ֻ��΢�������ļĴ������ݣ��Լ�һ��������ִ��ʱʹ�õĶ�ջ������ϵͳ�ڲ���һ���̣߳������ڸ����߳�֮���л�ʱ������Ҫ�Ƚ���С�Ķ࣬�������ˣ��̱߳���Ϊ�Ḻ�ɽ��̣�light-weight process����һ�������п��԰��������̡߳�
һ���߳���һ�������ڲ���˳����������
����1. ���̣�ÿ�����̶��ж����Ĵ��������ݿռ䣨���������ģ� �������л��Ŀ�������
����2. �̣߳������Ľ��̣�ͬһ���̹߳������������ݿռ䣬ÿ���߳��ж���������ջ�ͳ�����������PC�����߳��л��Ŀ���С��
����3. �����̣��ڲ���ϵͳ�У���ͬʱ���ж�������������
����4. ���̣߳���ͬһӦ�ó����У��ж���˳����ͬʱִ�С�

6��1��1 �̵߳ĸ���ģ��

Java����֧�ֶ��̣߳����������඼���ڶ��߳��¶����ģ�Java���ö��߳�ʹ����ϵͳ��Ϊ�첽ϵͳ��Java�е��߳������������ɣ���ͼ6.1��ʾ��
����1. ������CPU����װ��java.lang.Thread���С�
����2. CPU��ִ�еĴ��룬���ݸ�Thread�ࡣ
����3. CPU�����������ݣ����ݸ�Thread�ࡣ

6. 1. 2 �߳���(1)

��Java���߳���ͨ��java.lang.Thread����ʵ�ֵġ�����������һ��Thread���Ķ���֮��,һ���µ��߳̾Ͳ����ˡ�

���߳�ʵ����ʾJava�������е��������̣߳�ͨ�������������̡߳���ֹ�̡߳��̹߳����ȣ�ÿ���̶߳���ͨ����Thread��Java��������Java.lang�ж��壬���Ĺ��췽��Ϊ��
������public Thread ��ThreadGroup group��Runnable target��String name����
�������У�group ָ�����߳��������߳��飻targetʵ��ִ���߳�����Ŀ��������������ʵ�ֽӿ�Runnable�� nameΪ�߳�����Java�е�ÿ���̶߳����Լ������ƣ�Java�ṩ�˲�ͬThread�๹�������������߳�ָ�����ơ�����nameΪnullʱ����Java�Զ��ṩΨһ�����ơ�
���������췽����ij������Ϊnullʱ�����ǿɵõ������ļ������췽����
����public Thread ������
����public Thread ��Runnable target����
����public Thread ��Runnable target��String name����
����public Thread ��String name����
����public Thread ��ThreadGroup group��Runnable target����
����public Thread ��ThreadGroup group��String name����
����һ��������ʵ��Runnable�ӿھͿ��Գ䵱�߳��壬�ڽӿ�Runnable��ֻ������һ������ run������
��������������public void run������
�����κ�ʵ�ֽӿ�Runnable�Ķ��󶼿�����Ϊһ���̵߳�Ŀ����������Thread����Ҳʵ���˽ӿ�Runnable���������ǿ���ͨ�����ַ���ʵ���߳��塣
������һ������һ���߳��࣬���̳��߳���Thread����д���еķ��� run��������ʱ�ڳ�ʼ����������ʵ��ʱ��Ŀ��target��Ϊnull����ʾ������ʵ������ִ���߳��塣����Javaֻ֧�ֵ��ؼ̳У������ַ����������಻���ټ̳��������ࡣ
�����������ṩһ��ʵ�ֽӿ�Runnable������Ϊһ���̵߳�Ŀ���������ڳ�ʼ��һ��Thread������Thread�������̶߳���ʱ����Ŀ�����󴫵ݸ������߳�ʵ�����ɸ�Ŀ�������ṩ�߳��� run��������ʱ��ʵ�ֽӿ�Runnable������Ȼ���Լ̳��������ࡣ

����ÿ���̶߳���ͨ��ij���ض�Thread�����ķ���run( )�������������ģ�����run( )��Ϊ�߳��塣ͼ6.2��ʾ��java�̵߳IJ�ͬ״̬�Լ�״̬֮��ת�������õķ�����
ͼ6.2 �̵߳�״̬
�� 1. ����״̬(new Thread)
����ִ����������ʱ���߳̾ʹ��ڴ���״̬��
����Thread myThread = new MyThreadClass( );
������һ���̴߳��ڴ���״̬ʱ����������һ���յ��̶߳�����ϵͳ��Ϊ��������Դ��
����2. ������״̬( Runnable )
����Thread myThread = new MyThreadClass( );
����myThread.start( );
������һ���̴߳��ڿ�����״̬ʱ��ϵͳΪ�����̷߳�����������ϵͳ��Դ�����������в������߳����з�����������ʹ�ø��̴߳��ڿ�����( Runnable )״̬����Ҫע��������һ״̬������������״̬��Running ������Ϊ�߳�Ҳ��ʵ���ϲ�δ�������С����ںܶ����������ǵ��������ģ�����Ҫ��ͬһʱ���������еĴ��ڿ�����״̬���߳��Dz����ܵģ�Java������ϵͳ����ʵ�ֵ�������֤��Щ�̹߳�����������
  ��3. ��������״̬��Not Runnable��
�������벻������״̬��ԭ�������¼�����
����1) ������sleep��������;
����2) ������suspend��������;
����3) Ϊ�Ⱥ�һ�������������̵߳���wait��������;
����4) �����������з����߳�����;
������������״̬Ҳ��Ϊ����״̬��Blocked������Ϊij��ԭ��������/�������ȴ���Ϣ������������������ϵͳ����ִ���̵߳�״̬����ʱ��ʹ���������У�Ҳ����ִ�и��̡߳�
����4. ����״̬��Dead��
�����̵߳���ֹһ����ͨ�����ַ���ʵ�֣���Ȼ�������߳�ִ���꣩���DZ�ֹͣ������stop()��������Ŀǰ���Ƽ�ͨ������stop()����ֹ�̵߳�ִ�У��������߳�ִ����

6. 1. 2 �߳���(2)

�����߳��������ַ����ıȽϣ�
����1. ʹ��Runnable�ӿ�
������1) ���Խ�CPU�����������ݷֿ����γ�������ģ��;
������2) �����Դ��������̳�;
������3) ���ֳ���������һ���ԡ�
����2. ֱ�Ӽ̳�Thread��
������1) �����ٴ��������̳�;
������2) ��д�򵥣�����ֱ�Ӳ����̣߳�����ʹ��Thread.currentThread()��

��6��2 ͨ���ӿڹ����߳���
������public class Clock extends java.applet.Applet implements Runnable {//ʵ�ֽӿ�
������������Thread clockThread;
������������public void start() {
������������������//�÷�����Applet�ķ����������̵߳ķ���
������������if (clockThread == null) {
������������������clockThread = new Thread(this, "Clock");
������������������/*�߳�����Clock�����������߳�����Ϊ"Clock"*/
������������������clockThread.start(); //�����߳�
������������������}
������������} ������������public void run() { //run()���������߳�ִ�е�����
������������������while (clockThread != null) {
������������������repaint(); //ˢ����ʾ����
������������������try {
����������������������clockThread.sleep(1000);
����������������������//˯��1�룬��ÿ��1��ִ��һ��
��������������������} catch (InterruptedException e){}
������������������}
������������}
������������public void paint(Graphics g) {
��������������������Date now = new Date(); //���õ�ǰ��ʱ������
��������������������g.drawString(now.getHours() + ":" + now.getMinutes()+ ":" +now.getSeconds(), 5, 10);//��ʾ��ǰʱ��
������������} ������������public void stop() {
����������������//�÷�����Applet�ķ����������̵߳ķ���
��������������������clockThread.stop();
��������������������clockThread = null;
������������}
������} 6��1��3 �̵߳ĵ���

Java�ṩһ���̵߳����������س�������������������״̬�������̡߳��̵߳����������̵߳����ȼ�����Ӧ������Щ�߳���ִ�С�
�����̵߳��������̵߳����ȼ��ߵ�ѡ�������ȼ��̣߳�����������״̬��ִ�У�ͬʱ�̵߳���������ʽ���ȣ��������ڵ�ǰ�߳�ִ�й����У�һ���������ȼ����߳̽���������״̬���������߳�����������ִ�С�

����ʽ�����ַ�Ϊ��ʱ��Ƭ��ʽ�Ͷ�ռ��ʽ����ʱ��Ƭ��ʽ�£���ǰ��߳�ִ���굱ǰʱ��Ƭ�����������������ھ���״̬����ͬ���ȼ����̣߳�ϵͳ�Ὣִ��Ȩ������������̬��ͬ���ȼ��̣߳���ǰ��߳�ת���ȴ�ִ�ж��У��ȴ���һ��ʱ��Ƭ�ĵ��ȡ�
�����ڶ�ռ��ʽ�£���ǰ��߳�һ������ִ��Ȩ����һֱִ����ȥ��ֱ��ִ�����ϻ�����ij��ԭ����������CPU����������һ�����ȼ����̴߳��ھ���״̬��
�������漸�������£���ǰ�̻߳�����CPU:
����1. �̵߳�����yield() ��sleep() ��������������
����2. ���ڵ�ǰ�߳̽���I/O ���ʣ�������д���ȴ��û������Ȳ����������߳�������������Ϊ�Ⱥ�һ�������������Լ��̵߳���wait����������
����3. ����ʽϵͳ�£��ɸ����ȼ����̲߳������ȣ�ʱ��Ƭ��ʽ�£���ǰʱ��Ƭ���꣬��ͬ���ȼ����̲߳������ȡ�

�̵߳����ȼ�
�����̵߳����ȼ�����������ʾ����Χ��1��10����Thread.MIN_PRIORITY��Thread.MAX_PRIORITY��һ���̵߳�ȱʡ���ȼ���5����Thread.NORM_PRIORITY�������������Զ����ȼ����в�����
����int getPriority(); //�õ��̵߳����ȼ�
����void setPriority(int newPriority);
����//���̱߳������󣬿�ͨ���˷����ı��̵߳����ȼ�

ע�⣺������������ϵͳ������Java����ʱ������ʱ��Ƭ���Ե����̣߳�����һ���߳��ڿ���ʱӦ����������CPU����ʹ����ͬ���ȼ��͵����ȼ����̵߳õ�ִ�С�

 

6��2 ���̵߳Ļ�����ͬ��

�ٽ���Դ����
����ǰ�����ᵽ���̶߳��Ƕ����ģ������첽ִ�У�Ҳ����˵ÿ���̶߳�����������ʱ����Ҫ�����ݻ򷽷���������Ҫ�ⲿ����Դ�򷽷���Ҳ���ع��������̵߳�״̬����Ϊ�����Ǿ�����һЩͬʱ���е��߳���Ҫ�������ݣ���ʱ���迼�������̵߳�״̬����Ϊ�������Ͳ��ܱ�֤���������н�������ȷ�ԡ�

��6��4
����class stack{
������int idx=0; //��ջָ���ij�ʼֵΪ0
������char[ ] data = new char[6]; //��ջ��6���ַ��Ŀռ� ������public void push(char c){ //ѹջ����
��������data[idx] = c; //������ջ
��������idx + +; //ָ�������ƶ�һλ
������} ����������public char pop(){ //��ջ����
��������������idx - -; //ָ�������ƶ�һλ
��������������return data[idx]; //���ݳ�ջ
����������}
������}
���������߳�A��B��ͬʱʹ��Stack��ͬһ��ʵ��������A��������ջ��pushһ�����ݣ�B��Ҫ�Ӷ�ջ��popһ�����ݡ����������߳�A��B�ڶ�Stack�����IJ����ϵIJ������ԣ��ᵼ�²�����ʧ�ܣ���������������ʾ��
����1) ����֮ǰ
����������data = | p | q | | | | | idx=2 ����2) Aִ��push�еĵ�һ�����䣬��r������ջ��
����������data = | p | q | r | | | | idx=2
����3) A��δִ��idx++���䣬A��ִ�б�B�жϣ�Bִ��pop����������q��
����������data = | p | q | r | | | | idx=1
����4��A����ִ��push�ĵڶ������䣺
����������data = | p | q | r | | , | | idx=2
�����������Ľ����൱��rû����ջ����������������ԭ�����ڶԹ������ݷ��ʵIJ����IJ������ԡ� 6��2��1 ������

Ϊ���������IJ����������⣬��Java �����У������˶��󻥳����ĸ������֤�������ݲ����������ԡ�ÿ�����󶼶�Ӧ��һ���ɳ�Ϊ" ������" �ı��ǣ���������������֤����һʱ�̣�ֻ����һ���̷߳��ʸö����� �ؼ���synchronized ���������Ļ�������ϵ����ij��������synchronized ����ʱ�������ö�������һʱ��ֻ����һ���̷߳��ʡ�

��������public void push(char c){
��������synchronized(this){ //this��ʾStack�ĵ�ǰ����
��������������data[idx]=c;
��������������idx++;
��������}
��������}
��������public char pop(){
��������������synchronized(this){ //this��ʾStack�ĵ�ǰ����
��������������idx--;
��������������return data[idx];
��������������}
��������}
����synchronized ���������潲�ķ��ڶ���ǰ������һ�δ�����ִ���⣬�����Է��ڷ��������У���ʾ��������Ϊͬ��������
����public synchronized void push(char c){
������
��������}
��������synchronized�����������У������������е����з�������synchronized�ġ� 6��2��2���̵߳�ͬ��

���ڽ��������ο��ƻ��ཻ�����߳�֮�������н���,�����߳�֮����ͬ������,�������ǽ�ͨ�����߳�ͬ����ģ��: ������-������������˵������ʵ�ֶ��̵߳�ͬ����

���ǰ�ϵͳ��ʹ��ij����Դ���̳߳�Ϊ�����ߣ��������ͷ�ͬ����Դ���̳߳�Ϊ�����ߡ�
��������Java��Ӧ�ó����У��������߳����ļ���д���ݣ������ߴ��ļ��ж����ݣ�������������������ͬʱ���е������̹߳���ͬһ���ļ���Դ��ͨ�����������������˽�����ʹ����ͬ����

��6��5
������class SyncStack{ //ͬ����ջ��
������private int index = 0; //��ջָ����ʼֵΪ0
������private char []buffer = new char[6]; //��ջ��6���ַ��Ŀռ�
������public synchronized void push(char c){ //���ϻ�����
����������while(index = = buffer.length){ //��ջ����������ѹջ
����������try{
����������������this.wait(); //�ȴ���ֱ�������ݳ�ջ
��������������}catch(InterruptedException e){}
��������������} ������this.notify(); //֪ͨ�����̰߳����ݳ�ջ
������buffer[index] = c; //������ջ
������index++; //ָ�������ƶ�
������} ������public synchronized char pop(){ //���ϻ�����
��������������while(index ==0){ //��ջ�����ݣ����ܳ�ջ
����������������try{
����������������������this.wait(); //�ȴ������̰߳�������ջ,��ִ�и�pop�������̷߳������ȴ�     //���У�ֱ����notify()���������������״̬
����������������}catch(InterruptedException e){}
��������������������} ��������������this.notify(); //֪ͨ�����߳���ջ�������ȴ����е��е��̼߳���
��������������index- -; //ָ�������ƶ�
��������������return buffer[index]; //���ݳ�ջ
��������}
��������������} ��������class Producer implements Runnable{ //��������
��������������SyncStack theStack;
����������������//�����������ɵ���ĸ�����浽ͬ����ջ��
��������������public Producer(SyncStack s){
��������������������theStack = s;
��������������} ��������������public void run(){
��������������������char c;
��������������������for(int i=0; i<20; i++){
������������������������c =(char)(Math.random()*26+'A');
����������������������������������������������������//��������20���ַ�
������������������������theStack.push(c); //���ַ���ջ
������������������������System.out.println("Produced: "+c); //��ӡ�ַ�
������������������������try{
������������������������Thread.sleep((int)(Math.random()*1000));
������������������������������������������/*ÿ����һ���ַ��߳̾�˯��*/
������������������������}catch(InterruptedException e){}
��������������������}
��������������}
����������} ����������class Consumer implements Runnable{ //��������
������������������SyncStack theStack;
������������������������������������//�����������õ��ַ�������ͬ����ջ
������������������public Consumer(SyncStack s){
��������������������������theStack = s;
������������������} ������������������public void run(){
��������������������������char c;
��������������������������for(int i=0;i<20;i++){
������������������������������c = theStack.pop(); //�Ӷ�ջ�ж�ȡ�ַ�
��������������������������System.out.println("Consumed: "+c);
����������������������������������������������������������//��ӡ�ַ�
��������������������������try{
��������������������������Thread.sleep((int)(Math.random()*1000));
����������������������������������������/*ÿ��ȡһ���ַ��߳̾�˯��*/
��������������������������}catch(InterruptedException e){}
������������������}
��������������}
����������} ����������public class SyncTest{
��������������public static void main(String args[]){
������������������SyncStack stack = new SyncStack();
������//������������������������������������������ͬһ��ͬ����ջ����
������������������Runnable source=new Producer(stack);
������������������Runnable sink = new Consumer(stack);
������������������Thread t1 = new Thread(source); //�߳�ʵ����
������������������Thread t2 = new Thread(sink); //�߳�ʵ����
������������������t1.start(); //�߳�����
������������������t2.start(); //�߳�����
��������������}
����������}
������Producer��������ģ�ͣ����е� run()�����ж������������߳������IJ�����ѭ������push()����,��������20����ĸ������ջ�У�ÿ��ִ����push�����󣬵���sleep()����˯��һ������ʱ�䣬�Ը������߳�ִ�еĻ��ᡣ��Consumer��������ģ�ͣ�ѭ������pop()����,�Ӷ�ջ��ȡ��һ�����ݣ�һ��ȡ20�Σ�ÿ��ִ����pop�����󣬵���sleep()����˯��һ������ʱ�䣬�Ը������߳�ִ�еĻ��ᡣ �������������������У�ͨ������wait()��notify()������ʵ���̵߳�ͬ������ͬ���л����õ�notifyAll()������һ����˵��ÿ�����������Ļ����������������У�һ�������ȴ����У���һ�������������У������������еĵ�һ���߳̿��ԶԸù����������в����������ȴ������е��߳���ijЩ�����½����뵽���������С������Ƚ�һ��wait()��notify()��notifyAll()������
����(1) wait,nofity,notifyAll�������Ѿ���������������ִ��,��������ֻ�ܳ�����synchronized���õķ�Χ�ڣ�Ҳ���dz�������synchronized���εķ��������С�
����(2) wait������:�ͷ��ѳ��е���,�����ȴ�����.
����(3) notify������:����wait�����еĵ�һ���̲߳�������������������.
����(4) notifyAll������:����wait�����е����е��̲߳���������������������. ����ע�⣺
����1�� suspend()��resume()
����������JDK1.2�в���ʹ��suspend()��resume(),����Ӧ������wait()��notify()��ʵ�֡�
����2) stop()
������ ��JDK1.2�в���ʹ��stop(),����ͨ����־λ��ʹ��������ִ�����ϡ���6.6����һ�����͵����ӡ� ��6��6
������public class Xyz implements Runnable {
������������private boolean timeToQuit=false; //��־λ��ʼֵΪ��
������������public void run() {
������������������while(!timeToQuit) {//ֻҪ��־λΪ�٣��̼߳�������
����������������������������
������������������}
������������} ������public void stopRunning() {
������������������timeToQuit=true;} //��־λ��Ϊ�棬��ʾ������������
������������}
������public class ControlThread {
������������private Runnable r=new Xyz();
������������private Thread t=new Thread(r);
������������public void startThread() {
������������������t.start();
������������}
������������public void stopThread() {
������������������r.stopRunning(); }
������������������������������//ͨ������stopRunning��������ֹ�߳�����
������������} 6��3 Java Applet

6.3.1 Applet ����

Applet����ʹ��Java���Ա�д��һ�δ��룬�����������������������С�����Application��������Ҫ������ִ�з�ʽ�IJ�ͬ��application �Ǵ����е�main() ������ʼ���еģ���Applet ���������������еģ����봴��һ��HTML �ļ���ͨ����дHTML ���Դ���������������������Applet �Լ��������С�

1�� Applet ����

��6��7 HelloWorld.java Դ������
����import java.awt.Graphics; //����ͼ����Graphics
����import java.applet.Applet; //����Applet�� ����public class HelloWorld extends Applet {
������������String hw_text ;
������������public void init () { //init()������Applet����ִ�еķ���
������������hw_text = "Hello World";
������������} ������������public void paint(Graphics g) {
������������g.drawString (hw_text , 25, 25) ;
������������������//������Ϊ��25��25���ĵط���ʾ�ַ���hw_text ������������}
����} ����Applet������д����������Ҫ��java������������Ϊ�ֽ����ļ���Ȼ����д��Ӧ��HTML�ļ����ܹ�����ִ�У�����Ϊ����������Applet��������д��HTML�ļ�HelloWorld.html����:
����<HTML>
����<APPLET CODE="HelloWorld.class" WIDTH=200 HEIGHT=100
����</APPLET>
����</HTML> 2��Applet�� ��ȫ��

"ɳ��"���ƣ�Java������ΪApplet�ṩ�ܹ��������е�ɳ�䣬һ��������ͼ�뿪ɳ�����ᱻ��ֹ��
��������СӦ�ó�����ͨ�����紫�ݵģ����Ͳ��ɱ�����ʹ���뵽�ᷢ����ȫ���⡣�������˱�д��������ͨ��СӦ�ó�����ȡ�û����벢ɢ���������ϣ��⽫����һ���dz����µ����顣���ԣ�������СӦ�ó����������ơ�
������������ֹAppletִ�����в���:
����(1)������ʱ��������������
����(2)�ļ���д������
����(3)װ�ض�̬���ӿ��͵����κα��ط�����
����(4)��ͼ����һ��socket��������ͨ��,���������ӵ������������ṩApplet��������

�� Applet��������
���� Applet����������
����СӦ�ó�������������������Application���Խ�Ϊ���ӡ����������������漰��Applet�����ĸ�������Ҳ��JApplet���̳У���init()��start()��stop()��destroy()������������ͼ����ʾһ��СӦ�ó������������ڣ�Ȼ���ټ�Ҫ�������ĸ�������
����Applet���������������ĸ�״̬����ʼ̬������̬��ֹ̬ͣ������̬��������ִ����init()�����Ժ���Applet�����ͽ����˳�ʼ̬��Ȼ������ִ��start()������Applet������������̬����Applet�������ڵ�������ͼ�껯������ת������ҳ��ʱ����Applet��������ִ��stop()������Applet��������ֹ̬ͣ����ֹ̬ͣ�У�����������������װ�ظ�Applet�������ڵ�ҳ�棬��������������ͼ���и�ԭ����Applet�������ϵ���start()��������������̬����Ȼ����ֹ̬ͣʱ�������������رգ���Applet��������destroy()��������������̬��
���� Applet����Ҫ������
����1�� init( )
��������Appletʱִ��,ִֻ��һ��
������СӦ�ó�����һ�α�֧��Java������������ʱ����ִ�и÷�������СӦ�ó��������������У�ִֻ��һ�θ÷��������˿��������н���һЩִֻ��һ�εij�ʼ���������紦�������������ݽ����IJ����������û��ӿ�����������ͼ���������ļ��ȡ�
СӦ�ó�����Ĭ�ϵĹ��췽��������ϰ������init()������ִ�����еij�ʼ������������Ĭ�ϵĹ��췽���ڡ� ����2��start( )
��������ִ��,����������ͼ���ָ��ɴ���,�����Ƿ��ظ���ҳʱִ�С�
����ϵͳ�ڵ�����init()����֮�󣬽��Զ�����start()����������ÿ����������ͼ���ָ�Ϊ����ʱ�������û��뿪������СӦ�ó�������ҳ�����ٷ���ʱ��ϵͳ������ִ��һ��start()������start()������СӦ�ó��������������б����ö��Σ�������СӦ�ó�����ִ�У���һ����init()������ͬ���÷�����СӦ�ó��������壬�����п���ִ��һЩ��Ҫ�ظ�ִ�е������������¼���һ���̣߳����翪ʼ�����򲥷������ȡ� ����3��stop( )
��������ִ��,������������ͼ��ʱ,�������뿪��ҳʱִ�У���Ҫ������ֹͣһЩ����ϵͳ��Դ�Ĺ���,��
������start()�෴�����û��뿪СӦ�ó�������ҳ��������������ͼ��ʱ�����Զ�����stop()���������ˣ��÷���������������Ҳ�����ε��á�����ʹ�ÿ������û�����ע��СӦ�ó�����ʱ����ֹͣһЩ����ϵͳ��Դ�Ĺ��������ж�һ���̣߳�������Ӱ��ϵͳ�������ٶȣ��Ҳ�����Ҫȥ��Ϊ��ȥ���ø÷�������������СӦ�ó����в����������������ȳ�����ͨ��Ҳ�������ظ÷�����
����4��destroy( )
���������ͷ���Դ����stop( )֮��ִ��
���������������ر�ʱ��Java�Զ���������������destroy()�������ڻ����κ�һ����ϵͳ�޹ص��ڴ���Դ����Ȼ����������СӦ�ó�����Ȼ���ڻ״̬��Java���ڵ���destroy()֮ǰ������stop()������
��������������ʹ����СӦ�ó������������е��⼸��������
����6��8
����import java.awt.Graphics;
����import java.applet.Applet;
����public class HWloop extends Applet {
����������AudioClip sound; //����Ƭ�϶���
����������public void init( ){
����������������sound=getAudioClip("audio/hello.au"); //��������Ƭ��
����������}
����������public void paint(Graphics g) {
����������������g.drawString("hello Audio",25,25); //��ʾ�ַ���
����������} ����public void start( )
����������{
����������������sound.loop( ); //����Ƭ�Ͽ�ʼ����
����������}
����public void stop( )
����������{
����������������sound.stop( ); //����Ƭ��ֹͣ
����������������}
����} �����ڱ������У�Applet��ʼִ�к��Ͳ�ͣ�IJ�������������������ͼ�껯������ת������ҳ�棬������ֹͣ���ţ������������ָ����������Ǵ�����ҳ�����أ��������������������� ��������Applet����ҪǶ�뵽HTML�ļ��в��ܹ�����ִ�У�����������Applet�����йص�HTML�ļ����ǡ� ����<applet>
����[archive=archiveList] //ͬһ��codebase����Ԥ�����ص��ļ�
����code=appletFile.class //applet������
����width=pixels height=pixels //applet�ij�ʼ��ʾ�ռ�
����[codebase=codebaseURL] //�����ĵ�ַ
����[alt=alternateText] //������������֧��appletʱ����ʾ�������ı�
����[name=appletInstanceName]
����������������������//����appletȡ��������ͬҳ��applet֮����ͨ��
����[align=alignment] //���뷽ʽ����left,right,top,baseline...
����[vspace=pixels] [hspace=pixels] //Ԥ���ı�Ե�հ�
����>
����[<param name=appletAttribute1 value=value>]
����[<param name=appletAttribute2 value=value>]
�������� //�������Ƽ���ֵ
����[alternateHTML]
����</applet> ע�⣺
����1����֧��Java������������<applet></applet>֮������ͨHTML�ĵ���ʾ������֧��Java�����������������е���ͨHTML�ĵ����ԡ�
����2��AppletViewer��֧��<applet> </applet>���ǣ��������Dz��ᱻ��ʾ������ 1.3.2       Applet��AWT����
����Applet�����������õ�AWT�Ļ�ͼ������Ҫ�漰����������paint()������update()������repaint()������update()������paint()��������һ��Graphics��������Graphics�ǻ�ͼ�Ĺؼ���������֧�����ֻ�ͼ��һ���ǻ����Ļ�ͼ���磺���ߡ����Ρ�Բ�ȣ���һ���ǻ�ͼ������Ҫ���ڶ���������
����Ҫ���л�ͼ������Ҫ�ҵ�һ��Graphics���Ķ�����update()������paint()���������ݵIJ�������Graphics���Ķ�����������Ҫ��ͨ���������������л�ͼ�������ڶ��������о���ʹ�õķ��������ǻ�����ͨ��getGraphics()�����õ�һ��Graphics���Ķ���������������update()������paint()�����������ݵĶ���һ�������Ǹó�Ա����Ӧ��Graphics���Ķ��󡣵õ���Graphics���Ķ��󣬾Ϳ�ʹ�ø��ֻ�ͼ������
����Graphics���ṩ��ͼ�λ��Ʒ����У�
����paint( ) //���л�ͼ�ľ��������������г���Ա��д
����update( ) //���ڸ���ͼ�Σ�������������ǰ�����ٵ���paint()
����repaint( ) /*�����ػ�ͼ�Σ����������η����仯������С�ı���λ���ƶ�ʱ��repaint( )����������ϵͳ�Զ����ã���ʵ����repaint()�������Զ�����update()����*/ ���������ķ���֧�ֻ����Ļ�ͼ�ͻ�ͼ����
����void drawLine( )
����void drawArc( )
����void drawPolygon( )
����void drawRect( )
����void drawRoundRect( )
����void fill3DRect( )
����void fillOval( )
����java.awt.Graphics��
���������֣�
����void drawBytes( )
����void drawChars( )
����void drawString( ) 6��3��3 Applet������������ͨ��

��Applet�����ṩ�����෽����ʹ֮����������������ͨ�š���������Щ�������м�Ҫ�Ľ��ܣ�
һ��Webҳ�ɰ���һ�����ϵ�СӦ�ó�����һ��Webҳ�еĶ���СӦ�ó�������ֱ��ͨ��java.applet�����ṩ�ķ�������ͨ�š� ����getDocumentBase( ) //���ص�ǰ��ҳ���ڵ�URL
����getCodeBase( ) //���ص�ǰapplet���ڵ�URL
����getImage(URL base,String target) //������ַURL����Ϊtarget��ͼ��
����getAudioClip(URL base,String target)
����������������������������������//������ַURL����Ϊtarget����������
����getParameter(String target ) //��ȡHTML�ļ�����Ϊtarget�IJ�����ֵ ����ͬҳApplet����ͨ��
������java.applet.Applet�����ṩ�����·����õ���ǰ����ҳ�Ļ���������AppletContext������
����public AppletContext getAppletContext();
����ͨ��AppletContext���󣬿��Եõ���ǰСӦ�ó������л�������Ϣ��AppletContext��һ���ӿڣ����ж�����һЩ�������Եõ���ǰҳ������СӦ�ó��򣬽���ʵ��ͬҳСӦ�ó���֮����ͨ�š�
������1���õ���ǰ����ҳ�Ļ���������AppletContext����
����������public AppletContext getAppletContext();
������2��ȡ����Ϊname��Applet����
����������public abstract Applet getApplet(String name);
������3���õ���ǰҳ������Applet����
����������public abstract Enumeration getApplets(); ������С�᡿

����������Java���̺߳�Java Applet��һЩ����֪ʶ�ͼ���Ӧ�ã�ͨ�����̼߳��飬�������߳������̵�������ͨ�������̵߳ĸ���ģ�͵Ļ���ԭ���Լ��߳����Ĺ��췽����Ӧ��ʵ�����������̵߳Ļ������Ժ��̵߳IJ�ͬ״̬��ת����ϵ�͵��÷�������ȷ���̵߳�ʹ�÷�����Ȼ���������ֽ�һ���������̵߳ļ��ֵ��Ȳ��ԣ��ڲ�ͬ�ĵ��Ȳ��������ȼ������á��Լ����ν��л������̵߳Ŀ��ƣ��̵߳��ص����ѵ����ڶ��̵߳Ļ�����ͬ�����������DZ������׻������ĸ��������ã�����ʹ�û����������ƺʹ������̵߳�ͬ�����⡣
���������ĺ��벿�����Ƕ�Java Applet���˽��ܺ�һЩ������Ӧ�õĽ��⣬����Applet�Ĵ������������ں�Applet����Ҫ�����Լ�Applet��AWT���ƣ������򵥽�����Applet������������ͨ�ŵķ�����
  • ת����ע����Դ��ITѧϰ�� ��ַ��http://www.t086.com/ �����������Ƽ�������
  • �ر������� ��վ�������ر�������ֹת�ص�ר�������������¿�������ת�أ���������ע��������ԭʼ���ߡ����°�Ȩ������ԭʼ�������С����ڱ���վת�����µĸ��˺���վ�����DZ�ʾ������л�⡣������վת�ص������а�Ȩ��������ϵ���ǣ����ǻᾡ�����Ը�����
������ѯ Health Check Gulangyu
© 2017 T086ѧϰ�� - T086.com(ԭitlearner.com)
RunTime:9.06ms QueryTime:7