问题:一个小应用程序Applet的例子。输出“Hello World!”,
源程序代码如下://程序文件名称为HelloApplet.java
import java.awt.Graphics;
import java.applet.Applet;
public class HelloApplet extends Applet
{
public void paint (Graphics g )
{
g.drawString ("Hello World!",50,25);
}
}上面的代码编译之后,会生成HelloApplet.class文件,但是无法独立运行;小应用程序代码书写和编译完成后,无法独立运行,需要一个载体或者容器。
下面的HTML网页代码就是小应用程序载入的容器。<!--
程序文件名称为HelloApplet.html
-->
<HTML>
<HEAD>
<TITLE>
HTML Test Page
</TITLE>
</HEAD>
<BODY>
HelloApplet will appear below in a Java enabled browser.<BR>
<APPLET
    CODEBASE = "."
    CODE = "HelloApplet.class"
    NAME = "TestApplet"
    WIDTH = 400
    HEIGHT = 300
    HSPACE = 0
    VSPACE = 0
    ALIGN = middle
>
</APPLET>
</BODY>
</HTML>疑问1: 单击网页文件之后,为什么我的电脑会弹出脚本和Active控件会访问导致影响电脑安全性之类的问题,
我忽略之后,只显示了HelloApplet will appear below in a Java enabled browser.
,而需要输出的字符串没显示出来,请教一下这是为什么呢?疑问2: 我用Eclipse单独运行HelloApplet.java文件,为什么没有main()函数也可以运行呢?
但是我用记事本编辑之后,在Doc窗口只能编译,而无法执行,如下所示:
F:\java_exercise>javac HelloApplet.javaF:\java_exercise>java HelloApplet
Exception in thread "main" java.lang.NoSuchMethodError: main这是为什么呢?难道是因为Applet程序与控制台程序不同的原因吗?

解决方案 »

  1.   

    一、你用的是IE,你用chrome就不会出现这问题二、能够在eclipse中右键运行的程序叫做java-application,必须要有main方法,applet不是java application
      

  2.   

    你用的是IE,你用chrome就不会出现这问题
      

  3.   

    Applet只能内嵌到HTML中。然后用浏览器打开或者 appletviewer 打开除“忽略”外、IE应该还有别的选项(不用IE,印象中好像有)Eclipse 有 Run as Java Applet
      

  4.   

    打开运行->cmd->,用cd 命令进入你得文件目录,
    javac HelloApplet.java  //编译
    appletviewer HelloApplet.html//运行
    成功了!
    不过浏览器运行为什么IE会出现问题呢?
    有点不明白!
      

  5.   


    查了下java中Applet应用程序的工作原理以及它与Application程序的区别:
    1.Applet的工作原理:
    Applet是一种很重要的java程序,是工作在浏览器上的java程序。编写Applet小程序必须要用到java.applet包中的Applet类,该类是java.awt.Panel类的子类。Applet默认的基本工作原理:编译好的字节码文件保存在特定的www服务器上,同一个或另一个服务器上保存着嵌入了该字节码文件名的html文件。
      当某一个浏览器向服务器请求下载嵌入了Applet的html文件时,该文件从服务器上下载到客户端,由浏览器解释html,当遇到<applet>,表明它嵌有一个Applet,浏览器会根据这个Applet的名字和位置自动把字节码从服务器上下载到本地,并利用浏览器本身拥有的java解释器执行字节码。2.Applet与Application的区别
      (1)Java Applet程序是在WWW浏览器环境下运行,即不是完整独立运行程序;
      (2)运行Java Applet程序的解释器不是独立的软件,而是嵌在WWW浏览器中作为浏览器软件的一部分。
      (3)Java Applet程序中不需要有main方法,但是Java Applet程序的主类必须是类库中已定义好的类Applet或JApplet的子类。
      (4)Java Applet程序可以直接利用浏览器或AppletViewer提供的图形用户界面,而Java Application程序则必须另外书写专用代码来营建自己的图形界面。
      

  6.   

    还有一个疑问,下面是我今天随便写的一个Applet程序:import javax.swing.*;
    import java.awt.*;public class DrawDisplay extends JApplet{
    public void paint(Graphics g){
    g.setColor(Color.BLACK);
    g.draw3DRect(100,200,100,100,false);

    g.setColor(Color.BLUE);
    g.drawArc(10,20,100,200,30,120);

    g.setColor(Color.RED);
    g.drawRect(100,100,200,200);

    g.setColor(Color.GREEN);
    g.fillRect(300,300,400,400);


    }

    }DrawDisplay.html<html>
    <head><title> 我的Applet应用程序</title></head><body>
    <applet code ="DrawDisplay.class", Width = "800",
     Height ="700"></applet></body>
    </html>为什么以上程序我通过Ecclipse可以显示出圆弧、填充的矩形和只含边界的矩形;
    然而在命令窗口下运行(我把双操作系统的Win7安装在D盘)
    D:\Users\caochufeng>cd F:\java_exerciseD:\Users\caochufeng>F:F:\java_exercise>javac DrawDisplay.javaF:\java_exercise>appletviewer DrawDisplay.htmlF:\java_exercise>appletviewer DrawDisplay.htmlF:\java_exercise>
    为什么只是显示空白的窗口,而圆弧、只含边界的矩形和填充矩形没有
    绘制呢?
    哪位大虾帮忙解释下,本人刚接触java,好多不懂,望大家给予帮助!