永发信息网

java GUI和事件

答案:2  悬赏:40  手机版
解决时间 2021-02-02 20:52
  • 提问者网友:末路
  • 2021-02-02 13:30
源代码如下:
import java.awt.*;
import java.awt.event.*;
class TestKey{
public static void main(String[] args){
new MyFrame();
}
}

class MyFrame extends Frame{
TextField text = new TextField();
MyFrame(){
super("请按下键盘");
add(text);
pack();
setVisible(true);
//监听文本框中的键盘按下事件
text.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
System.out.println("您按下了键盘");
}
});
//监听窗体关闭事件
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
System.exit(0);
}
});
}
}

以上代码正常通过编译和执行,但是我在窗体退出事件的匿名类中如果将setVisible(false)改写为this.setVisible(false)就不能编译通过提示 cannot find symbol 找不到符号,是什么意思?难道this针对的是MyFrame这个类吗?如果是,setVisible依然是MyFrame中的方法啊,应该用this也可以啊!为什么不能编译通过呢?
最佳答案
  • 五星知识达人网友:七十二街
  • 2021-02-02 14:40
在内部类 、或者内隐类的的代码中,this 指的是当前的内部类,WindowAdapter,所以会报错,如果不用this,由于内部类没有setVisible()方法,自然去寻找外部类中的方法,外部类的是Frame ,可以找到setVisible方法
全部回答
  • 1楼网友:独钓一江月
  • 2021-02-02 15:28
看看java的api吧,,,,,,jcheckbox ,文档里面还有例子的、、、、、、、、、面向对象的事件开发。。。。。。。不算很难的了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯