如题,在IE浏览器中为什么stop()和destroy()方法总是不执行,如何来测试这几个方法的执行情况。
最好给出详细的说明。

解决方案 »

  1.   

    import java.applet.*;
    import java.awt.*;public class AppletTest extends Applet{
    private Frame mf;
    private TextArea ta;
    public AppletTest(){
    mf=new Frame("applet test");
    ta=new TextArea();
    ta.setPreferredSize(new Dimension(200,200)); mf.add(ta);
    mf.pack();
    mf.setVisible(true);
    }
    public void init(){
    ta.append("init()\n");
    }
    public void start(){
    ta.append("start()\n");
    }
    public void stop(){
    ta.append("stop()\n");
    }
    public void destroy(){
    ta.append("destroy()\n");
    }
    }
      

  2.   

    可是在浏览器中运行时,stop和destroy方法怎么总是不执行呀?如何才能看出来他们的执行呢?
      

  3.   

    必须关闭浏览器它才会destroy.
    何不用appletviewer来测试?
      

  4.   

    问:yuzl32在浏览器中测试,必须关闭浏览器才会destroy
         应该是在浏览器导向到另外一个页面时就执行destroy呀?
    另外在浏览器中stop总是不执行呀
         应该是浏览器失去焦点时就执行的呀?
      

  5.   

    Start()方法在init()方法后执行,在Applet每次成为非活动性后要恢复成活动性之前再次运行它。当用户离开Web页时,可能会最小化窗口或访问另一个Web页,这时stop()方法被调用。当用户关闭浏览器或AppletViewer时,调用Destroy()方法。关闭浏览器或Applet Viewer就会释放Applet占据的资源。
      

  6.   

    如下代码:
    为什么stopCounter和destroyCounter的值永远都是0?import javax.swing.*;
    import java.awt.*;
    public class AppletMethods extends JApplet
    {
    int initCounter = 0;
    int startCounter = 0;
    int stopCounter = 0;
    int destroyCounter = 0;

    public void init()
    {
    initCounter++;
    repaint();
    }
    public void start()
    {
    startCounter++;
    repaint();
    }
    public void stop()
    {
    stopCounter++;
    repaint();
    }
    public void destroy()
    {
    destroyCounter++;
    repaint();
    }
    public void paint(Graphics g)
    {
    g.drawString("initCoutner:" + String.valueOf(initCounter) ,20,20);
    g.drawString("startCoutner:" + String.valueOf(startCounter) ,20,35);
    g.drawString("stopCoutner:" + String.valueOf(stopCounter) ,20,50);
    g.drawString("destroyCoutner:" + String.valueOf(destroyCounter) ,20,65);
    }
    }