1.windowsadapter与windowevent区别在哪里?
我的理解,如果是内容一样的话,windowevent不方便,应该淘汰了.
2.windowadapter是接口吗?可是implements出错.
3.如何调用windowClosed???
我的理解,如果是内容一样的话,windowevent不方便,应该淘汰了.
2.windowadapter是接口吗?可是implements出错.
3.如何调用windowClosed???
楼主【sure2003】截止到2008-07-29 07:28:25的历史汇总数据(不包括此帖):
发帖的总数量:279 发帖的总分数:11343 每贴平均分数:40
回帖的总数量:244 得分贴总数量:10 回帖的得分率:4%
结贴的总数量:278 结贴的总分数:11313
无满意结贴数:2 无满意结贴分:50
未结的帖子数:1 未结的总分数:30
结贴的百分比:99.64 % 结分的百分比:99.74 %
无满意结贴率:0.72 % 无满意结分率:0.44 %
值得尊敬
disconnect();
System.exit(0);
}
该事件被传递给每一个使用窗口的 addWindowListener 方法注册以接收这种事件的 WindowListener 或 WindowAdapter 对象。(WindowAdapter 对象实现 WindowListener 接口。)发生事件时,所有此类侦听器对象都将获取此 WindowEvent。
WindowAdapter是接收窗口事件的抽象适配器类。扩展此类可创建 WindowEvent 侦听器并为所需事件重写该方法。(如果要实现 WindowListener 接口,则必须定义该接口内的所有方法。此抽象类将所有方法都定义为 null,所以只需针对关心的事件定义方法。) 2.WindowAdapter是个抽象类,所以不能implements3.当你为某个窗体添加了WindowListener 后,当该窗口已被关闭时自动调用windowClosed。
2.WindowAdapter是一个实现了WindowListener接口的类。这里值得注意的是它是一个没有抽象方法的抽象类public abstract class WindowAdapter
implements WindowListener, WindowStateListener, WindowFocusListener
{
/**
* Invoked when a window has been opened.
*/
public void windowOpened(WindowEvent e) {} /**
* Invoked when a window is in the process of being closed.
* The close operation can be overridden at this point.
*/
public void windowClosing(WindowEvent e) {} /**
* Invoked when a window has been closed.
*/
public void windowClosed(WindowEvent e) {} /**
* Invoked when a window is iconified.
*/
public void windowIconified(WindowEvent e) {} /**
* Invoked when a window is de-iconified.
*/
public void windowDeiconified(WindowEvent e) {} /**
* Invoked when a window is activated.
*/
public void windowActivated(WindowEvent e) {} /**
* Invoked when a window is de-activated.
*/
public void windowDeactivated(WindowEvent e) {} /**
* Invoked when a window state is changed.
* @since 1.4
*/
public void windowStateChanged(WindowEvent e) {} /**
* Invoked when the Window is set to be the focused Window, which means
* that the Window, or one of its subcomponents, will receive keyboard
* events.
*
* @since 1.4
*/
public void windowGainedFocus(WindowEvent e) {} /**
* Invoked when the Window is no longer the focused Window, which means
* that keyboard events will no longer be delivered to the Window or any of
* its subcomponents.
*
* @since 1.4
*/
public void windowLostFocus(WindowEvent e) {}
}
继承WindowAdapter类或者实现WindowListener接口其实是一样的。不过继承WindowAdapter的好处是你只需要重写你需要的方法就好了,实现接口的话要把所有的方法都实现,很麻烦。但如果你要继承WindowAdapter的类有还需要继承其他的类的话这时候就只能实现接口了,因为java只允许单继承。
3。只要添加了窗口事件监听 ,关闭窗口的时候会自动调用。最后提醒楼主,这些问题通过查文档和看源代码就能自己解决,而且很容易。如果所有的问题都通过问别人来解决,你很难取得大的进步。
{
test newFrame=new test();
newFrame.setVisible(true);
newFrame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
new test("Second").setVisible(true);
}
});
}
WindowAdapter-----也是处理窗口的,不过使用的是委托式事件处理机制,它继承了Adapter类
使用WindowEvent时,你必须实现这个接口里的各个方法
但是你使用WindowAdapter时,你只须实现你想要的方法即可,其他的它可以都给你实现
{
public void windowclosing(WindowEvevt e)
{
....
}
}adapter 是委托式事件处理机制,它可以帮我们把Listener所有的方法实现出来,你只需实现你想要的方法就可以了
WindowAdapter肯定是抽象类
抽象类不可以生成对象
但如接口一样,继承下就可以了.
所以它也是内部匿名类的一种.