繁体   English   中英

Java AWT:Applet将在没有main(),init(),start(),paint()的情况下运行

[英]Java AWT : Will applet run without main(), init(), start(), paint()

我正在学习AWT,计划以后再学习Swing。

我发现了一个applet的以下代码,据我所知,当存在以下方法时applet将开始运行:main(),init(),start(),paint()...

每次单击鼠标时,小程序只会增加其宽度和长度尺寸:

在此代码中,以上均不存在,如何调用ResizeMe方法? 如果未调用调整大小方法,如何调用addmouselistener? 编辑:顺便说一句代码工作

// Resizing output to fit the current size of a window.
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/*
  <applet code="ResizeMe" width=200 height=200>
  </applet>
 */

public class ResizeMe extends Applet {
  final int inc = 25;
  int max = 500;
  int min = 200;
  Dimension d;

  public ResizeMe() {
    addMouseListener(new MouseAdapter() {
      public void mouseReleased(MouseEvent me) {
        int w = (d.width + inc) > max?min :(d.width + inc);
        int h = (d.height + inc) > max?min :(d.height + inc);
        setSize(new Dimension(w, h));
      }
    });
  }
  public void paint(Graphics g) {
    d = getSize();

    g.drawLine(0, 0, d.width-1, d.height-1);
    g.drawLine(0, d.height-1, d.width-1, 0);
    g.drawRect(0, 0, d.width-1, d.height-1);
  }
}

谢谢,路德

是的, main用于桌面应用程序。 在applet生命周期的特定时刻调用以下方法,并允许执行针对该生命周期的特定操作。

  • 初始化-最初
  • start-HTML页面(重新)启动时
  • 停止-当一个人离开HTML页面时
  • 销毁-卸载applet时

此外,AWT的组成部分确实已经过时了。 仅使用java.awt.Color,Font等,Applet,Button和其他不容易找到。

因此,我建议立即切换到秋千。


AWT具有与本机代码(操作系统)组件对等的每个纯Java组件。 因此,Windows上的Button是真正的Windows Button。 因此,对于Windows,Mac和Linux,有一个单独的AWT实现。

Swing会自己完成所有工作,并具有多个外观(主题/外观)。 系统外观模拟尽可能接近当前的操作系统。 Swings的优势在于它的高可配置性,例如在JLabel上可以最大限度地减少图标和文本之间的距离,或者只需编写"<html><b>Boldly</b> go, ..."就可以对每个文本组件使用HTML "<html><b>Boldly</b> go, ..."

Swing是一项较新的工作。

ResizeMe()是构造函数。 因此,它在类创建时被调用,因此,将添加鼠标侦听器。 GUI事件处理线程调用paint()

Java Applet类为initstartpaint方法提供了默认实现(请参见java.applet.Applet )。 ResizeMe类继承自java.applet.Applet ,因此继承了Applet类的所有方法(有关继承的更多信息,请参见子类 )。

小程序不需要其他main方法,因为它已嵌入另一个应用程序中。

ResizeMe()方法是一个构造函数。 实例化ResizeMe类时,它将自动调用。

ResizeMe正在扩展Applet,这意味着它继承了Applet拥有的所有方法。 看一下Applet文档,看看它包含哪些方法,以及从父方法继承的方法。

另外,确实没有理由学习AWT,然后再学习Swing。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM