基本程序片(java)

库通常按照它们的功能来进行组合。一些库,例如使用过的,便中断搁置起来。标准的Java库字符串和矢量类就是这样的一个例子。其他的库被特殊地设计,例如构建块去建立其它的库。库中的某些类是应用程序的框架,其目的是协助我们构建应用程序,在提供类或类集的情况下产生每个特定应用程序的基本活动状况。然后,为我们定制活动状况,必须继承应用程序类并且废弃程序的权益。应用程序框架的默认控制结构将在特定的时间调用我们废弃的程序。应用程序的框架是“分离、改变和中止事件”的好例子,因为它总是努力去尝试集中在被废弃的所有特殊程序段。

程序片利用应用程序框架来建立。我们从类中继承程序片,并且废弃特定的程序。大多数时间我们必须考虑一些不得不运行的使程序片在WEB页面上建立和使用的重要方法。这些方法是:
 


Method
 


Operation
 


init()
 


Called when the applet is first created to perform first-time initialization of the applet
 


start()
 


Called every time the applet moves into sight on the Web browser to allow the applet to start up its normal operations (especially those that are shut off by stop()). Also called after init().
 


paint()
 


Part of the base class Component (three levels of inheritance up). Called as part of an update() to perform special painting on the canvas of an applet.
 


stop()
 


Called every time the applet moves out of sight on the Web browser to allow the applet to shut off expensive operations. Also called right before destroy().
 


destroy()
 


Called when the applet is being unloaded from the page to perform final release of resources when the applet is no longer used
 

方法 作用

init() 程序片第一次被创建,初次运行初始化程序片时调用
start() 每当程序片进入Web浏览器中,并且允许程序片启动它的常规操作时调用(特殊的程序片被stop()关闭);同样在init()后调用
paint() 基础类Component的一部分(继承结构中上溯三级)。作为update()的一部分调用,以便对程序片的画布进行特殊的描绘
stop() 每次程序片从Web浏览器的视线中离开时调用,使程序片能关闭代价高昂的操作;同样在调用destroy()前调用
destroy() 程序片不再需要,将它从页面中卸载时调用,以执行资源的最后清除工作

现在来看一看paint()方法。一旦Component(目前是程序片)决定自己需要更新,就会调用这个方法——可能是由于它再次回转屏幕,首次在屏幕上显示,或者是由于其他窗口临时覆盖了你的Web浏览器。此时程序片会调用它的update()方法(在基础类Component中定义),该方法会恢复一切该恢复的东西,而调用paint()正是这个过程的一部分。没必要对paint()进行过载处理,但构建一个简单的程序片无疑是方便的方法,所以我们首先从paint()方法开始。
update()调用paint()时,会向其传递指向Graphics对象的一个句柄,那个对象代表准备在上面描绘(作图)的表面。这是非常重要的,因为我们受到项目组件的外观的限制,因此不能画到区域外,这可是一件好事,否则我们就会画到线外去。在程序片的例子中,程序片的外观就是这界定的区域。
图形对象同样有一系列我们可对其进行的操作。这些操作都与在画布上作图有关。所以其中的大部分都要涉及图像、几何菜状、圆弧等等的描绘(注意如果有兴趣,可在Java文档中找到更详细的说明)。有些方法允许我们画出字符,而其中最常用的就是drawString()。对于它,需指出自己想描绘的String(字串),并指定它在程序片作图区域的起点。这个位置用像素表示,所以它在不同的机器上看起来是不同的,但至少是可以移植的。
根据这些信息即可创建一个简单的程序片:
 

//: Applet1.java
// Very simple applet
package c13;
import java.awt.*;
import java.applet.*;

public class Applet1 extends Applet {
  public void paint(Graphics g) {
    g.drawString("First applet", 10, 10);
  }
} ///:~

注意这个程序片不需要有一个main()。所有内容都封装到应用程序框架中;我们将所有启动代码都放在init()里。
必须将这个程序放到一个Web页中才能运行,而只能在支持Java的Web浏览器中才能看到此页。为了将一个程序片置入Web页,需要在那个Web页的代码中设置一个特殊的标记(注释①),以指示网页装载和运行程序片。这就是applet标记,它在Applet1中的样子如下:
 

<applet
code=Applet1
width=200
height=200>
</applet>

①:本书假定读者已掌握了HTML的基本知识。这些知识不难学习,有许多书籍和网上资源都可以提供帮助。

其中,code值指定了.class文件的名字,程序片就驻留在那个文件中。width和height指定这个程序片的初始尺寸(如前所述,以像素为单位)。还可将另一些东西放入applet标记:用于在因特网上寻找其他.class文件的位置(codebase)、对齐和排列信息(align)、使程序片相互间能够通信的一个特殊标识符(name)以及用于提供程序片能接收的信息的参数。参数采取下述形式:
<Paramname=标识符 value ="信息">
可根据需要设置任意多个这样的参数。
在简单的程序片中,我们要做的唯一事情是按上述形式在Web页中设置一个程序片标记(applet),令其装载和运行程序片。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索graphics作图
, 程序
, applet
, 方法
, 应用程序
, sightly
, 一个
The
java程序员的基本修养、java程序的基本结构、java程序基本结构、java基本程序、java程序的基本单位,以便于您获取更多的相关知识。

时间: 2024-08-30 12:08:26

基本程序片(java)的相关文章

网络资源-黑马程序员Java 知识——精华总结

获取更多资源Java帮帮IT资源分享网 一.黑马程序员-java 概述与基础知识.................................................................................6 1.何为编程?...................................................................................................................6 2.J

socket-android写个注册程序时报java.io.StreamCorruptedException

问题描述 android写个注册程序时报java.io.StreamCorruptedException 求大神帮忙看一看,困了好久了,还是解决不了,先上点代码 public void onClick(View v) { if (!userpassword1.getText().toString() .equals(userpassword2.getText().toString())) { Toast.makeText(RegActivity.this, "密码不一致!", Toas

delphi-求地址匹配投递部程序,java或Delphi都可以(分值不够望见谅)

问题描述 求地址匹配投递部程序,java或Delphi都可以(分值不够望见谅) 导入一条地址信息,要求从数据库的地址库中匹配相应的投递部(地址节点信息包括:节点名,id,父id,投递部id) 现存在问题: (1)一条路可能对应多个投递部:例如东莞市 南城区 莞太路 33号 属于A投递部,34号属于B投递部 (2)导入地址不规范:东莞市 南城区 莞太路 33号 某某大厦 ,33号是A投递部,某某大厦是C投递部,这种情况以某某大厦为准 (3)基础地址信息多,怎么提高匹配效率呢 (4)地址节点表中:多

二维图形基本变换-c程序转换为java程序,最好用图形界面实现

问题描述 c程序转换为java程序,最好用图形界面实现 #include #include #define N 50 #define M 3.14159265 void erwei(); void sanwei(); void main() { int w; printf("请输入是几维图形变换:二维(2)或三维(3): "); scanf_s("%d", &w); if(w == 2) erwei(); else if(w == 3) sanwei();

android-安卓程序提示java.lang.IndexOutOfBoundsException

问题描述 安卓程序提示java.lang.IndexOutOfBoundsException 这是java代码 @Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn=(Button) this.findViewById(R.id.btn3); Spanna

hibernate简单小程序中报 java.lang.IllegalAccessError错误

问题描述 hibernate简单小程序中报 java.lang.IllegalAccessError错误 我刚开始自学hibernate,跟着视频敲了个小程序,只是实现向数据库employee表中插入一条数据,可是debug运行到 Configuration configuration = new Configuration().configure(); 时就开始抛出 Exception in thread "main" java.lang.IllegalAccessError: tr

恶意程序利用 Java 漏洞攻击雅虎访问者

荷兰安全公司Fox IT 报告, 雅虎广告服务器ads.yahoo.com遭黑客入侵,被利用传播恶意程序.恶意程序利用Java漏洞感染访问雅虎网站的浏览者,在受害者机器上安装不同 恶意组件.Java插件已因为安全方面的原因被部分浏览器如Firefox屏蔽.Fox IT认为,攻击最早发生在去年12月30日,持续了数天,它估计恶意程序的感染率约为每小时2.7万.雅虎已发表声明,称非常重视用户的安全,在发现之后 立即移除了传播恶意程序的广告.攻击源头尚不清楚,Fox IT推测攻击者是出于金钱方面的动机

Java扫雷程序,初试Java

程序 自定义JButton子类: //ExtendButton.java package ly.java; import java.awt.*;import java.awt.event.*;import javax.swing.*; public class ExtendButton extends JButton{ private int Button_Pos; private boolean Button_Status; private boolean Button_Visited; pu

享受Android应用程序的Java技术盛宴

准备开始 本文介绍几种处理复杂情况的 Android SDK 工具.开发 Android 应用程序,需要最新版 Android SDK,这需要一个 Java Development Kit (JDK).我使用的是 Android 2.2 和 JDK 1.6.0_17.物理设备不是必须的:本文中的所有代码在 SDK 附带的 Android 模拟器上可以很好的运行.本文假设您对 Android 编程比较熟悉,故不涉及 Android 基础开发,但是如果您有 Java 编程语言的知识,也是可以的. 并