当我点击鼠标时,我试图调用方法doMouse
这就是我想出的。我试过ge.addMouseListener
但IntelliJ根本不喜欢这个。我目前在UI.MouseListener cannot apply java.awt.event.MouseAdapter
时出错。如果有人能解释为什么会这样,我怎么能让它工作,我会很感激。
import ecs100;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class GUIExercise{
public static void main(String[] arguments){
GUIExercise ge = new GUIExercise();
UI.setMouseListener(new MouseAdapter(){
@Override // error here fixed
public void mouseClicked(MouseEvent e){
doMouse( "", e.getX(), e.getY());
}
});
UI.println("Select a .JPG file from the Choose file button.");
UI.println("Click the mouse in the graphics pane to paste the image");
}
}
答案 0 :(得分:2)
您正在尝试覆盖不存在的方法,因此注释正常工作(并有助于防止更难以调试运行时问题)。你想要MouseAdapter.mouseClicked(MouseEvent)
@Override
public void mouseClicked(MouseEvent e) {
doMouse("", e.getX(), e.getY());
}
答案 1 :(得分:0)
您可以在其子类中override
基类的行为。
子类中添加的任何新方法都不是基类的行为,因此添加override
注释会给出编译时错误。
在您的情况下,您有MouseAdapter
的匿名子类。方法的名称和签名(用于鼠标单击)是
public void mouseClicked(MouseEvent e)
你的情况是mouseClick
(名称中缺少ed,所以就像你在子类中添加了一个单独的新方法一样)。因此,当您将override
注释添加到另一个单独的新方法时,IDE会通过给出编译时错误来告诉您相同的内容。