返回介绍

13.2.3 框架方法的演示

发布于 2024-10-15 23:56:27 字数 937 浏览 0 评论 0 收藏 0

观看框架方法的实际运作是相当有趣的(这个例子只使用 init(),start() 和 stop(),因为 paint() 和 destroy() 非常简单,很容易就能掌握)。下面的程序片将跟踪这些方法调用的次数,并用 paint() 将其显示出来:

//: Applet3.java
// Shows init(), start() and stop() activities
import java.awt.*;
import java.applet.*;

public class Applet3 extends Applet {
  String s;
  int inits = 0;
  int starts = 0;
  int stops = 0;
  public void init() { inits++; }
  public void start() { starts++; }
  public void stop() { stops++; }
  public void paint(Graphics g) {
    s = "inits: " + inits + 
      ", starts: " + starts +
      ", stops: " + stops;
    g.drawString(s, 10, 10);
  }
} ///:~

正常情况下,当我们过载一个方法时,需检查自己是否需要调用方法的基础类版本,这是十分重要的。例如,使用 init() 时可能需要调用 super.init()。然而,Applet 文档特别指出 init()、start() 和 stop() 在 Applet 中没有用处,所以这里不需要调用它们。

试验这个程序片时,会发现假如最小化 WEB 浏览器,或者用另一个窗口将其覆盖,那么就不能再调用 stop() 和 start()(这一行为会随着不同的实现方案变化;可考虑将 Web 浏览器的行为同程序片观察器的行为对照一下)。调用唯一发生的场合是在我们转移到一个不同的 Web 页,然后返回包含了程序片的那个页时。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文