关于Java 窗口注册监听器的问题
importjava.awt.*;importjava.awt.event.*;publicclassTestAddListenerimplementsActionLis...
import java.awt.*;
import java.awt.event.*;
public class TestAddListener implements ActionListener,WindowListener{
Frame f;
Button b;
public void creat(){
f=new Frame("Add Listeners");
b=new Button("press me");
b.addActionListener(this);
f.addWindowListener(this);
f.add(b,"North");
f.setSize(200,200);
f.setVisible(true);
}
public static void main(String[] args) {
TestAddListener ta=new TestAddListener();
ta.creat();
}
public void actionPerformed(ActionEvent e){
System.out.println("OK");
}
public void windowActivated(WindowEvent e){}
public void windowDeactivatrd(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowClosing(WindowEvent e){System.exit(1);}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowOpened(WindowEvent e){}
}
有一个错误是说“TestAddListener 不是抽象类,并且未覆盖java.awt.event.WindowsListener 中的抽象方法”。
请问什么问题出错了?
请解析下原理什么的,谢谢了 展开
import java.awt.event.*;
public class TestAddListener implements ActionListener,WindowListener{
Frame f;
Button b;
public void creat(){
f=new Frame("Add Listeners");
b=new Button("press me");
b.addActionListener(this);
f.addWindowListener(this);
f.add(b,"North");
f.setSize(200,200);
f.setVisible(true);
}
public static void main(String[] args) {
TestAddListener ta=new TestAddListener();
ta.creat();
}
public void actionPerformed(ActionEvent e){
System.out.println("OK");
}
public void windowActivated(WindowEvent e){}
public void windowDeactivatrd(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowClosing(WindowEvent e){System.exit(1);}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowOpened(WindowEvent e){}
}
有一个错误是说“TestAddListener 不是抽象类,并且未覆盖java.awt.event.WindowsListener 中的抽象方法”。
请问什么问题出错了?
请解析下原理什么的,谢谢了 展开
展开全部
建议楼主,多看看java的 “继承”与“实现”,java.awt.event.WindowsListener 是个接口,里面的方法如一楼,这些方法都是只是申明,而没有具体的方法体。
你的TestAddListener类,要实现这个接口,就必须实现WindowsListener 里的所有方法。楼主少实现了一个方法。在
public void windowOpened(WindowEvent e){}方法后,加上以下行就可以了
public void windowDeactivated(WindowEvent e) {}
你的TestAddListener类,要实现这个接口,就必须实现WindowsListener 里的所有方法。楼主少实现了一个方法。在
public void windowOpened(WindowEvent e){}方法后,加上以下行就可以了
public void windowDeactivated(WindowEvent e) {}
展开全部
WindowsListener是一个接口,TestAddListener 实现了WindowsListener 接口,并且进行了实例化(new),所以WindowsListener 中的方法必须全部实现,如下
void windowActivated(WindowEvent e)
将 Window 设置为活动 Window 时调用。
void windowClosed(WindowEvent e)
因对窗口调用 dispose 而将其关闭时调用。
void windowClosing(WindowEvent e)
用户试图从窗口的系统菜单中关闭窗口时调用。
void windowDeactivated(WindowEvent e)
当 Window 不再是活动 Window 时调用。
void windowDeiconified(WindowEvent e)
窗口从最小化状态变为正常状态时调用。
void windowIconified(WindowEvent e)
窗口从正常状态变为最小化状态时调用。
void windowOpened(WindowEvent e)
窗口首次变为可见时调用。
建议你使用WindowAdapter,这样代码能少很多
void windowActivated(WindowEvent e)
将 Window 设置为活动 Window 时调用。
void windowClosed(WindowEvent e)
因对窗口调用 dispose 而将其关闭时调用。
void windowClosing(WindowEvent e)
用户试图从窗口的系统菜单中关闭窗口时调用。
void windowDeactivated(WindowEvent e)
当 Window 不再是活动 Window 时调用。
void windowDeiconified(WindowEvent e)
窗口从最小化状态变为正常状态时调用。
void windowIconified(WindowEvent e)
窗口从正常状态变为最小化状态时调用。
void windowOpened(WindowEvent e)
窗口首次变为可见时调用。
建议你使用WindowAdapter,这样代码能少很多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单的说:WindowsListener 中的抽象方法 还有你没有实现的。。
具体类 实现接口,就是 接口里的 方法必须全部实现。
具体类 实现接口,就是 接口里的 方法必须全部实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询