Java 错误MouseMotionListener,MouseStener

Java 错误MouseMotionListener,MouseStener,java,swing,mouseevent,Java,Swing,Mouseevent,我得到一个错误: AniWorld is not abstract and does not override abstract method mouseMoved(MouseEvent) in MouseMotionListener public class AniWorld extends Applet implements MouseMotionListener, MouseListener 代码是: import java.awt.*; import java.lang.*; im

我得到一个错误:

AniWorld is not abstract and does not override abstract method mouseMoved(MouseEvent) in MouseMotionListener
public class AniWorld extends  Applet implements MouseMotionListener, MouseListener
代码是:

 import java.awt.*;
import java.lang.*;
import java.applet.*;
import java.net.*;
import java.net.MalformedURLException;
import java.applet.Applet.*;
import java.io.IOException;
import java.awt.event.*;

public class AniWorld extends  Applet implements MouseMotionListener, MouseListener
{
public Stage      stage;
GridBagLayout     layout;
public void init()
{
    addMouseMotionListener(this);
    addMouseListener(this);
    setBackground( Color.white );
    layout = new GridBagLayout();
    setLayout( layout );
    int width = Integer.parseInt( getParameter( "width" ).trim() );
    int height = Integer.parseInt( getParameter( "height" ).trim() );
    stage = new Stage( width-10,height-10);
    constrain( stage,this,layout,1,0,1,6,
               GridBagConstraints.NONE,
               GridBagConstraints.CENTER,0,0 );

    stage.addBall();
    stage.addRect();
    stage.addArc();
    stage.start();
}
public void start()
{
    stage.start();
} // end of start()



public static void constrain(
                 Component     component,
                 Container     container,
                 GridBagLayout layout,
                 int           gridx,
                 int           gridy,
                 int           gridwidth,
                 int           gridheight,
                 int           fill,
                 int           anchor,
                 double        weightx,
                 double        weighty
                 ) {

    GridBagConstraints gbc = new GridBagConstraints();

    gbc.gridx      = gridx;
    gbc.gridy      = gridy;
    gbc.gridwidth  = gridwidth;
    gbc.gridheight = gridheight;
    gbc.fill       = fill;
    gbc.anchor     = anchor;
    gbc.weightx    = weightx;
    gbc.weighty    = weighty;

    layout.setConstraints( component,gbc );

    container.add( component );

    } // end of constrain()

public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
您需要添加

public void mouseMoved(MouseEvent) 
要创建AniWorld,或从已实现接口列表中删除“MouseMotionListener”

出现该错误的原因是,当您说您实现了一个接口时,您必须为接口中的所有方法提供实现,或者您的类需要是抽象的。

您需要添加

public void mouseMoved(MouseEvent) 
要创建AniWorld,或从已实现接口列表中删除“MouseMotionListener”

出现该错误的原因是,当您说您实现了一个接口时,您必须为接口中的所有方法提供实现,或者您的类需要是抽象的。

您必须实现(或者至少为)方法
MouseDragged(MouseEvent e)
MouseMoved留下一个空白的实现(MouseEvent e)
因为您正在实现
MouseMotionListener
接口

这里是的文档,您必须实现方法
MouseDragged(MouseEvent e)
MouseMoved(MouseEvent e)
,因为您要实现
MouseMotionListener
接口


这里是关于不让GUI类实现侦听器接口的另一个原因的文档。最好的解决方案不是这样做,而是使用一个匿名的内部类来扩展MouseAdapter,或者使用一个私有的内部类来扩展MouseAdapter。否则,您要求GUI做的太多了,并且正在为可能的e将来调试问题。

不让GUI类实现侦听器接口的另一个原因。最好的解决方案不是这样做,而是使用一个匿名的内部类来扩展MouseAdapter,或者使用一个私有的内部类来扩展MouseAdapter。否则,您要求GUI做的太多,并且正在为自己设置po将来可能出现的调试问题。

是的, 您必须重写接口的所有方法,这意味着如果您正在实现MouseListener,那么您必须重写所有五个方法,如果您留下一个方法来重写,那么100%您将得到相同的错误…您正在实现两个侦听器,所以您必须重写,mouseCliked(),mouseenterned(),mouseExited(),mouseepressed(),mousererelease(),mouseDragged(),mouseMoved())

在所有方法重写之后,您将成功无误….

Yes AniWorld, 您必须重写接口的所有方法,这意味着如果您正在实现MouseListener,那么您必须重写所有五个方法,如果您留下一个方法来重写,那么100%您将得到相同的错误…您正在实现两个侦听器,所以您必须重写,mouseCliked(),mouseenterned(),mouseExited(),mouseepressed(),mousererelease(),mouseDragged(),mouseMoved())


毕竟,重写方法将成功,不会出现任何错误。…

因为有点加密,但让我感觉+1因为有点加密,但让我感觉+1