问题:一个小应用程序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程序与控制台程序不同的原因吗?
源程序代码如下://程序文件名称为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程序与控制台程序不同的原因吗?
javac HelloApplet.java //编译
appletviewer HelloApplet.html//运行
成功了!
不过浏览器运行为什么IE会出现问题呢?
有点不明白!
查了下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程序则必须另外书写专用代码来营建自己的图形界面。
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,好多不懂,望大家给予帮助!