java中windowAdapter的使用
JFramejf=newJFrame();jf.addWindowListener(newWindowListener(){//实现了所有方法});这么做可以生效,但是如...
JFrame jf=new JFrame();
jf.addWindowListener(new WindowListener(){//实现了所有方法});
这么做可以生效,但是如果我用WindowAdapter类可就没那么幸运了:
jf.addWindowListener(new WindowAdapter(){//实现了windowClosing方法});
不管实现哪个方法都没有效果!在Eclipse中这些方法的下面还有道黄色波浪线!请问怎么用这个适配器类才能让实现的方法有效果?
具体代码:jf.addWindowListener(new WindowListener()
{
public void WindowClosing(WindowEvent e)
{
AWTUtilities.setWindowOpacity(jf, 0.9f);
}}
//此方法有效
//实现了所有的方法
无效代码:jf.addWindowListener(new WindowAdapter()
{public void WindowClosing(WindowEvent e){
AWTUtilities.setWindowOpacity(jf, 0.9f);
}}//此方法无效
没效是指在windowclosing{}中写了一大堆代码,什么用都没有,程序该怎么关还怎么关。 展开
jf.addWindowListener(new WindowListener(){//实现了所有方法});
这么做可以生效,但是如果我用WindowAdapter类可就没那么幸运了:
jf.addWindowListener(new WindowAdapter(){//实现了windowClosing方法});
不管实现哪个方法都没有效果!在Eclipse中这些方法的下面还有道黄色波浪线!请问怎么用这个适配器类才能让实现的方法有效果?
具体代码:jf.addWindowListener(new WindowListener()
{
public void WindowClosing(WindowEvent e)
{
AWTUtilities.setWindowOpacity(jf, 0.9f);
}}
//此方法有效
//实现了所有的方法
无效代码:jf.addWindowListener(new WindowAdapter()
{public void WindowClosing(WindowEvent e){
AWTUtilities.setWindowOpacity(jf, 0.9f);
}}//此方法无效
没效是指在windowclosing{}中写了一大堆代码,什么用都没有,程序该怎么关还怎么关。 展开
2个回答
推荐于2018-03-13
展开全部
有效啊,怎么会没效?WindowListener是接口,没有实现。WindowAdapter是抽象类,实现了所有的WindowListener方法,只不过方法内部都是空的。你贴点具体的代码吧,还有,你说的没效是指怎样没效?
===========================================================
public class Test {
public static void main(String[] args) {
final JFrame frame = new JFrame();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.out.println("window closing");
AWTUtilities.setWindowOpacity(frame, 0.9f);
}
});
frame.setSize(600, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
上面这段代码(import省略了)在我机器上执行,关闭窗口的时候窗体貌似黑了一下,我不知道是不是应该这个效果。但是肯定是执行了,因为打印出了东西。
你说的不执行,难道是连打印都没有吗?另外,你贴的代码是手打的还是复制粘贴的?WindowClosing像这样,jdk中方法的首字母是不会大写的,如果你果真拼写错,那就可以解释为什么不执行和eclipse的警告了,然而listener中拼错是会通不过编译的,这又不好解释了。。(还是说,写空的Listener会报错,于是你在eclipse中点旁边的红叉,让他自动帮你生成,这样就不会拼错。而写空的Adapter是不会报错的,所以你就手打了?)
总之,感觉有小的地方疏忽了。eclipse给你画的黄线,警告内容是什么?
===========================================================
public class Test {
public static void main(String[] args) {
final JFrame frame = new JFrame();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.out.println("window closing");
AWTUtilities.setWindowOpacity(frame, 0.9f);
}
});
frame.setSize(600, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
上面这段代码(import省略了)在我机器上执行,关闭窗口的时候窗体貌似黑了一下,我不知道是不是应该这个效果。但是肯定是执行了,因为打印出了东西。
你说的不执行,难道是连打印都没有吗?另外,你贴的代码是手打的还是复制粘贴的?WindowClosing像这样,jdk中方法的首字母是不会大写的,如果你果真拼写错,那就可以解释为什么不执行和eclipse的警告了,然而listener中拼错是会通不过编译的,这又不好解释了。。(还是说,写空的Listener会报错,于是你在eclipse中点旁边的红叉,让他自动帮你生成,这样就不会拼错。而写空的Adapter是不会报错的,所以你就手打了?)
总之,感觉有小的地方疏忽了。eclipse给你画的黄线,警告内容是什么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询