java中一个小Applet程序的疑问

雪域迷影 2010-08-21 12:00:39
问题:一个小应用程序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.java

F:\java_exercise>java HelloApplet
Exception in thread "main" java.lang.NoSuchMethodError: main

这是为什么呢?难道是因为Applet程序与控制台程序不同的原因吗?
...全文
215 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Crystal_Knight 2010-08-22
  • 打赏
  • 举报
回复
是游览器安全性问题,这于 用IE 游览 其他网页是 经常会 跳出 是否要运行该控件是一样的
雪域迷影 2010-08-22
  • 打赏
  • 举报
回复
还有一个疑问,下面是我今天随便写的一个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_exercise

D:\Users\caochufeng>F:

F:\java_exercise>javac DrawDisplay.java

F:\java_exercise>appletviewer DrawDisplay.html

F:\java_exercise>appletviewer DrawDisplay.html

F:\java_exercise>
为什么只是显示空白的窗口,而圆弧、只含边界的矩形和填充矩形没有
绘制呢?
哪位大虾帮忙解释下,本人刚接触java,好多不懂,望大家给予帮助!
雪域迷影 2010-08-22
  • 打赏
  • 举报
回复

查了下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程序则必须另外书写专用代码来营建自己的图形界面。
jingfengyaoxiao 2010-08-21
  • 打赏
  • 举报
回复
用chrome
jeffrey281 2010-08-21
  • 打赏
  • 举报
回复
你用的是IE,你用chrome就不会出现这问题
龙四 2010-08-21
  • 打赏
  • 举报
回复
一、你用的是IE,你用chrome就不会出现这问题

二、能够在eclipse中右键运行的程序叫做java-application,必须要有main方法,applet不是java application
huntor 2010-08-21
  • 打赏
  • 举报
回复
IE 有安全限制。
雪域迷影 2010-08-21
  • 打赏
  • 举报
回复
打开运行->cmd->,用cd 命令进入你得文件目录,
javac HelloApplet.java //编译
appletviewer HelloApplet.html//运行
成功了!
不过浏览器运行为什么IE会出现问题呢?
有点不明白!
huntor 2010-08-21
  • 打赏
  • 举报
回复
Applet只能内嵌到HTML中。然后用浏览器打开或者 appletviewer 打开

除“忽略”外、IE应该还有别的选项(不用IE,印象中好像有)

Eclipse 有 Run as Java Applet

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧