WindowListener не работает

1

Я программирую рамку и окно апплета, но проблема в том, что код не работает. помогите мне решить эту проблему, а также помочь мне закрыть окно рамки, потому что с помощью оконного прослушивателя окно кадра не закрывается.

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);
}
}

и давая мне эту ошибку снова и снова:

fra1 is not abstract and does not override abstract method windowdDeactivated
(java.awt.event.windowEvent) in java.awt.event.WindowListener public class
fra1 extends Applet implements WindowListener
  • 0
    Не запускайте фрейм из апплета. Вместо этого запустите фрейм по ссылке, используя Java Web Start . Одно важное отличие между рамкой с песочницей, запускаемой из апплета и из JWS, состоит в том, что, хотя фрейму JWS разрешено вызывать System.exit(n) , фрейм апплета не может. Кстати - почему AWT, а не Swing? Посмотрите мой ответ о дополнениях Swing через AWT по многим веским причинам отказаться от использования компонентов AWT. Одной из веских причин является JFrame.setDefaultCloseOperation(n) , простая замена KeyLstnr .
Теги:
compiler-errors
event-listener
applet
windowlistener

1 ответ

1

Если вы используете 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) {

    }
}

Добавьте другие методы в свой класс, и он должен скомпилироваться.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню