Java WindowListener不工作

Java WindowListener不工作,java,compiler-errors,applet,event-listener,windowlistener,Java,Compiler Errors,Applet,Event Listener,Windowlistener,我在框架和小程序窗口上编程,但问题是,代码不起作用。 请帮助我解决此问题,并帮助我如何关闭框架窗口,因为在窗口侦听器的帮助下,框架窗口不会关闭 import java.awt.*; import java.applet.*; import java.awt.event.*; /*<applet code="fra1.class" height=500 width=600></applet>*/ public class fra1 extends Applet imple

我在框架和小程序窗口上编程,但问题是,代码不起作用。 请帮助我解决此问题,并帮助我如何关闭框架窗口,因为在窗口侦听器的帮助下,框架窗口不会关闭

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
/*<applet code="fra1.class" height=500 width=600></applet>*/

public class fra1 extends Applet implements WindowListener
{
String msg="This is applet window";
Frame f;
public void init()
{
setLayout(null);
f=new Frame();
f.setTitle("THE JAVA GAMER");
f.setSize(400,400);
f.setVisible(true);
f.add(new Label("This is frame window"),Label.LEFT);
f.addWindowListener(this);
}
public void start()
{
f.setVisible(true);
}
public void stop()
{
f.setVisible(false);
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
public void paint(Graphics g)
{
g.drawString(msg,100,100);
}
}

如果您要实现一个
WindowListener
,您需要覆盖它提供的所有方法,因此您的类必须包含所有这些方法,而不仅仅是您想要的方法

public class Foo implements WindowListener {
    @Override
    public void windowOpened(WindowEvent e) {

    }

    @Override
    public void windowClosing(WindowEvent e) {

    }

    @Override
    public void windowClosed(WindowEvent e) {

    }

    @Override
    public void windowIconified(WindowEvent e) {

    }

    @Override
    public void windowDeiconified(WindowEvent e) {

    }

    @Override
    public void windowActivated(WindowEvent e) {

    }

    @Override
    public void windowDeactivated(WindowEvent e) {

    }
}

将其他方法添加到类中,它就会编译。

不要从小程序中启动框架。相反,请使用从链接启动框架。从小程序启动的沙盒框架和从JWS启动的沙盒框架之间的一个重要区别是,虽然允许JWS框架调用
System.exit(n)
,但小程序框架不能。顺便说一句-为什么是AWT而不是Swing?关于放弃使用AWT组件的许多好理由,请参见我的答案。一个很好的理由是
JFrame.setDefaultCloseOperation(n)
,它是
KeyLstnr
的一个简单替代品。
public class Foo implements WindowListener {
    @Override
    public void windowOpened(WindowEvent e) {

    }

    @Override
    public void windowClosing(WindowEvent e) {

    }

    @Override
    public void windowClosed(WindowEvent e) {

    }

    @Override
    public void windowIconified(WindowEvent e) {

    }

    @Override
    public void windowDeiconified(WindowEvent e) {

    }

    @Override
    public void windowActivated(WindowEvent e) {

    }

    @Override
    public void windowDeactivated(WindowEvent e) {

    }
}