当前位置: 首页 > 图灵资讯 > 技术篇> Java应用技巧

Java应用技巧

来源:图灵教育
时间:2024-03-03 10:44:23

  ----1.Applet与Application合并-Java是一种建立分布应用程序的技术。它是网络编程的最佳工具。将Internet的应用程序从通信工具扩展到能够运行成熟应用程序的网络。

  ----Java程序有两种类型:Applet和Application。简单来说,Applet是嵌入Web文档的程序,而Application是所有其他类型的程序。

  ----就Java而言,Application和Application的大小和复杂性没有限制,但由于Application主要用于网络通信,由于通信速度有限,下载时间较长,所以Application一般规模较小,而对于Application则没有这样的担忧。----Applet和Application之间的技术差异来自于其运行环境的差异。Applet需要大量来自浏览器的信息:浏览器客户机的位置和大小,嵌入主HTML文档的参数,初始化过程(init)、启动过程(start)、停止过程(stop)、终止过程(destory)、绘图过程(paint)等等,而Application则相对简单得多,它来自外部世界的唯一输入就是命令行参数。----Applet必须作为java.applet.Application的子类,而Application必须有一种公共方法main()。其次,两者的主线程是不同的。Applet由方法init()初始化,而Application由方法main()开始运行程序。一般来说,Java的Applet和Application都是按照上述原则编程的,但是我们可以用技巧来写Applet和Application的程序。这样,我们就可以进一步了解Java的内部结构,在不同的运行环境中运行同一程序,提高研究Java的兴趣。----例程如下:importjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassExampleextendsAppletimplementsActionListener\/#1publicstaticvoidmain(String[]args){Framewin=newFrame("Example");Exampleexample=newExample();win.add(enter”,example);example.init();//#2win.setSize(600,360);win.setVisible(true);}publicvoidinit(){ //3Buttonbutton;Labellabel;button=newButton("OK"):button.setBounds(280,200,100,20);button.addActionListener(this);label=newLabel();label.setBounds(260,100,200,20);add(button);add(label);}publicvoidactionPerformed(ActionEvente){Objectsource=e.getSource();if(source==button){label.setText("Itisaexample!");}}}

  ----在程序中的#一个地方必须让程序继承java.applet.Applet是Applet的必要条件#2.需要生成本类的一个例子example,通过这个例子调用init()方法,#三是init()方法。----如果将该程序视为Applet,则只覆盖init()方法和actionPerformed()方法来响应button事件。----如果将该程序视为Applet,则只覆盖init()方法和actionPerformed()方法来响应button事件。如果是Application,则从main()方法开始。先生将程序本身的例子添加到窗口中,然后调用init()方法。编译此程序,即可作为Aplication直接运行,也可作为Applet发送到任何浏览器。----2.Java中的声音提示-Java作为一种网络编程语言,可以在浏览器中进行动画演示或播放声音。为了增强效果或起到提示作用,需要在人机交互过程中加入声音。----Java包java.AudioClip接口包装在applet中,这是一些常用的声音片段封装方法。用法如下:AudioClipaudio;audio=getAudioClip(getCodeBase(),"Hi.au");audio.play();

  ----第一行生成一个接口AudioClip的变量,第二行使用这个变量获取声音文件Hio。.au,本文件和程序本身在同一目录下,getCodeBase()用于获取Appletclass文件的URL地址。第三行是播放声音文件。第三行是播放声音文件。在Applet中使用此用法可以在浏览器中发出声音。那么,在application中也可以用这种方法发出声音吗?不可以。因为接口AudioClip是包java.在applet中,此包只适用于applet。其他方法可以实现吗?我们可以用1中的技巧来编写一个程序,即Applet和Application。结果,还是不行。这是因为play()方法只能在applet中实现,不能调用applicationplay()方法。----那么,如何在application中实现发声提示呢?----记住VB中有beep句,使系统发声器发声(SystemSpeaker)那么,Java也应该有类似的发声方法。

  ----Javajava在Java.awt.beeep()是Toolkit类中实现这一功能的方法。类别Toolkit是一个抽象的类别,它是实现AWT所有工具的父类。Java中的抽象类不能实例化,但一般来说,抽象类可以生成变量,然后使用抽象类中的某种方法来获得此类替代品。getDefaultToolkit()方法用于Toolkit。现在给出一个例子:这是客户机/服务器的Application。当服务器运行时,如果客户机与服务器连接,服务器会自动发出声音报警,提醒服务器端的用户有客户与自己交谈。

  ----程序如下:服务器:importjava.util.*;importjava.io.*;importjava.net.*;importjava.awt.*;publicclassServerT{publicstaticvoidmain(String[]args){Serverserver;StringclientRequest;booleanquit=false;server=newServer(8001);while(!quit){DataInputStreamkeyboard=newDataInputStream(System.in);try{clientRequest=server.in.readLine();if(clientRequest.trim().equals("CLOSE")){System.out.println("Clientsays:"+clientRequest);System.exit(1);}System.out.println("Clientsays:"+clientRequest);server.out.println(keyboard.readLine());}catch(IOExceptione){System.out.println("IOExceptioninserver.in.readLine()"+e);System.exit(1);}}}}classServer{privateServerSocketserver;privateSocketsocket;publicDataInputStreamin;publicPrintStreamout;publicServer(intport){try{server=newServerSocket(port);System.out.println("\n*************************************************");System.out.println("\n@(#Netaplecationersion.0097/12/30");System.out.println("Copyright(c)1997(LuiDongBing)AllRightsReserved.");System.out.println("\n***************************************************");System.out.println("\nServeris:\n"+server);socket=server.accept();for(inti=0;I< 260;i++){ // 发 声 提 展示Toolkit.getDefaultToolkit().beep();}System.out.println("\n Server is ready ! \n");in=new DataInputStream(socket.getInputStream());out=new PrintStream(socket.getOutputStream());out.println("We connect in "+new Date());}catch(IOException e){System.out.println("Server is failied !");}}} 客 户 机 :import java.util.*;import java.io.*;import java.net.*;public class ClientT{public static void main(String[] args){String welcome,response;Client client;client=new Client8001(100.100.1); // #1DataInputstreamam keyboard=new DataInputStream(System.in);boolean Bye=false;while(!Bye){try{welcome=client.in.readLine();System.out.println(" Server says: "+welcome);client.out.println(keyboard.readLine());}catch(IOException e){System.out.println("\n The talk is CLOSED !");System.exit(1);}}try{Thread.sleep(200);}catch(Exception e){System.out.println("It is a bug !");}}}class Client{public DataInputStream in;public PrintStream out;private Socket client;public Client(String host,int port){try{client=new Socket(host,port);System.out.println("\n ***************************************************");System.out.println("\n @(#)Net Applecation Version 1.00 97/12/30 ");System.out.println(" Copyright (c) 1997 (Lui DongBing) All Rights Reserved.");System.out.println("\n **************************************************");System.out.println("\n Client socket:"+client);System.out.println("\n Client is ready ! \n");out=new PrintStream(client.getOutputStream());in=new DataInputStream(client.getInputStream());}catch(IOException e){System.out.println("\n IOException !\n"+e);System.exit(1);}}}

  本机地址为100.100.100.1