为什么我不能在这个Java程序中触发按钮单击事件?

时间:2016-03-01 08:47:59

标签: java events button awt

我遇到了一个使用AWT(Frame)制作的GUI应用程序,其中有一个名为" CLOSE"点击后会调用函数 function()。我读过的这本书展示了从 handleEvent()方法处理这个事件。问题是这本书有一个印刷错误,我无法理解触发按钮被点击事件的语法。我用Google搜索但无法找到任何帮助。我正在输入以下代码的片段供您参考。请帮我正确的语法。

public boolean handleEvent(Event e){
    if(e.get instance of Button){ //this line has a problem
        if(e.arg.equals("CLOSE"){
            function(); //calls a function 
            return true;
        }
    }
    return super.handleEvent(e);
}

2 个答案:

答案 0 :(得分:0)

我只是创建一个扩展java.awt.Frame的类 并且该类中的代码工作得很好

@Override
public boolean handleEvent ( Event evt ) {
    if ( evt.target instanceof Button ) { //this line hasn't a problem
        if ( evt.arg.equals ( "CLOSE" ) ) {
            System.exit ( 0 ); //calls a function 
            return true;
        }
    }
    return super.handleEvent ( evt );
}

答案 1 :(得分:0)

根据比较判断,看起来e.get希望在法案所说的e.getComponent()之上。

 if(e.get instance of Button){

- 需要 -

if(e.getComponent() instanceof Button){

此外我相信的返回声明无法访问。我猜System.exit(0);可能会失败,它会在没有它的情况下发出编译警告。

  System.exit(0);
  return true;