千家信息网

Applet版的HelloWorld怎么写

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"Applet版的HelloWorld怎么写",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Applet版的HelloWorld怎么写
千家信息网最后更新 2026年10月31日Applet版的HelloWorld怎么写

这篇文章主要讲解了"Applet版的HelloWorld怎么写",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Applet版的HelloWorld怎么写"吧!

Applet是Java编写的可以在浏览器端运行的代码,它与应用程序的明显区别在于其执行方式的不同,应用程序如C程序是从main()主程序开始运行的,而Applet则比较复杂.具体如何复杂我不太清楚,但我会慢慢清楚的。关于Applet的一个重要性质是,我可以将HTML中的值作为参数传递给Applet(通过getParameter()来获取参数值).这样,为了产生不同的效果,我们不需要重新编译Java程序,而只需修改HTML的参数值即可.由于HTML的代码也可以动态生成的,因此我可以对网页的动态效果进行随心所欲的控制.

在Applet的生命周期中有3个比较主要的方法:init,start,stop
init():负责Applet的初始化,在整个Applet的生命周期中,只执行一次该方法.和Delphi中的OnCreate()事件是一样的道理
start():系统在调用完init()后,将自动调用start(),并且每次当前窗口被重新激活时,都会调用该方法,和Delphi中的OnShow()事件是差不多的。
stop():用户离开Applet所在页面后调用该方法。它使你在用户不注意Applet的时候,停止一些资源的工作以免影响系统运行效率.并且我们不需要人为地去掉该方法.该方法同Delphi中的OnClose()事件差不多。

下面是一个Applet版的HelloWorld
文件名:HelloWorld.java

import java.applet.Applet;
import java.awt.Graphics;

public class HelloWorld extends Applet
{
String title;
public void init(){
title="Hello World";
}

public void paint(Graphics g)
{
g.drawString(title,50,20);
}

}

我们可以看到,程序中是没有主函数的,那它如何运行呢.既然Applet是在浏览器环境下运行的,那我们就需要在HTML文件中来调用它.需要使用的相关标签就是标签,我们首先建立HTML文件test.htm,源代码如下.


Here comes my first applet:






将该文件和HelloWorld.java放在同一个目录中,然后编译HelloWorld.java之后,直接点击test.htm打开,就可以看到Applet程序被启动了.或者使用AppletViewer命令AppletViewer test.htm也可以不需要浏览器直接运行该Applet.

下面一个程序可以更好的帮助我们理解Java Applet在整个生命周期是如何调用上面我们介绍的几个方法的.

文件名:StartStop.java
import java.awt.*;
import java.applet.*;

public class StartStop extends Applet
{
StringBuffer message;
public void init()
{
message=new StringBuffer("Init done...");
}

public void start()
{
message.append("Started...");
}

public void stop()
{
message.append("Stopped...");
}

public void paint(Graphics g)
{
g.drawString(message.toString(),150,50);
}

}

运行方法同上.(该程序可参考机械工业的)

同C语言不一样,使用Java实现GUI要轻松的多。由于是纯面向对象的语言,Java的AWT提供了各种界面元素供我们调用,如同Delphi里面的组件一样。下面是Java中的GUI对象和Delphi中的相应组件的对照表

Java Delphi

Button TButton
Canvas TCanvas
Checkbox TCheckbox
CheckboxGroup TRadioGroup
Choice TComboBox
Label TLabel
TextField TEdit
TextArea TMemo


然而,jdk并不是可视化的RAD(rapid application development)开发工具,对于对象的使用不能如Delphi那样只需要拖拉,移位就可以,而需要我们写调用代码.这就产生了一个麻烦,我怎么样才能够让元素按我的要求在界面中摆放呢?在元素不多时可以让Java自动布局(Layout),但是元素很多时,或者需要根据应用程序的要求来摆放元素时,就需要使用面板了(Panel).面板在Delphi里也有相应的组件(TPanel),但主要是用来对界面分割,进行粗略的布局的,精确的定位还需要开发人员手动调节.而Java则只能用Panel来定位,不能不说是个缺陷.也许是我还没学到吧。

入门之后,就该深入到对象的概念了。
假设在Java中创建了一个叫做Date的自定义数据类型如下
public class Date{
int day;
int month;
int year;
}
那么对于以下三条声名变量的语句,java在为其分配内存的时候有什么不同吗?
(1) int i;
(2) Date mybirth;
(3) Date mybirth=new Date();

很显然是有的,分配情况如下:
(1)Java自动为整数i分配整形变量的内存,一般是两个字节
(2)Java声明了一个Date类的实例变量mybirth,并为其分配了存储空间,但这个存储空间里面存储的只是一个引用,或者说是一个地址,目前的地址里面什么都没有,那么我们就还不能使用这个实例变量,不能引用它的成员。
(3)Java创建了一个Date类的实例变量mybirth,并为其成员变量分配了足够的存储空间,最后返回对这个存储空间的一个引用,也就是返回这个存储空间的首地址,以后就通过mybirth,即这个首地址来访问这个实例变量里面的各个成员,如mybirth.day,mybirth.month,mybirth.year。
当我们声明一个基本数据类型的变量(如boolean, byte, short, char, int,long,flat,double)时,系统会自动为变量分配内存。但是如果声明了String或者用户自定义的变量时,系统不会立即为其分配内存.为什么会这样呢?
这是因为,String和用户自定义的变量都属于类的范畴.一个被声明为类的变量,已经不再是一个数据了,而变成对数据的一个引用,就是说mybirth可以看作是一个指向类的一个实例的指针,里面存放的是地址.这样的话就好理解了。
深入一点,既然类的实例变量值是指针,这个指针指向一个类的实例,那么我们显然可以定义多个名称不同的类的实例变量,而将它们全都指向一个实例.比如
University u=new University();//定义了一个类University的实例变量u,并为其分配对象的存储空间
University u2=u;//又定义了一个实例变量u2,将u的值赋给u2
那么显然u2和u除了名称不同外,其实是一回事,因为它们指向相同一个地址.

我觉得弄清楚这一点还是很重要的。这些数据结构的东西,是一个程序员需要知道的所以然.

感谢各位的阅读,以上就是"Applet版的HelloWorld怎么写"的内容了,经过本文的学习后,相信大家对Applet版的HelloWorld怎么写这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

变量 实例 程序 方法 分配 存储 运行 地址 空间 不同 元素 对象 数据 文件 内存 指向 用户 系统 事件 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 互联网与科技发展 互联网科技小贷 智网互联网科技 未来的互联网科技 融贸通互联网科技 天扬科技互联网广告 深圳市运趣互联网科技有限公司 北京三清互联网科技 昭通云南众福互联网科技有限公司 宁夏科技产业互联网案例 互联网对科技的发展 湖北码尼互联网科技有限公司电话 互联网科技公司有风险吗 互联网科技公司营业执照怎么办理 互联网方面的科技前沿 互联网科技数字货币 科技互联网企业在行动 中国主要互联网科技公司 互联网 科技节活动 微视频大赛 佩信高科技互联网 互联网科技教育视频 互联网对科技的发展 洛阳昕诺飞互联网科技有限公司 本届互联网博览会上的黑科技 锡山区互联网智能科技产品供应 云南省自由互联网科技有限公司 信承诺互联网科技有限公司 北京军民互联网科技公司 北京瑞云互联网科技有限公司
0