首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误MouseMotionListener,MouseListener

错误MouseMotionListener,MouseListener
EN

Stack Overflow用户
提问于 2011-11-20 06:33:50
回答 4查看 3.5K关注 0票数 0

我收到一个错误:

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

代码是:

代码语言:javascript
复制
 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) {}
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-20 06:38:04

因为要实现MouseMotionListener接口,所以必须实现(或者至少为方法MouseDragged(MouseEvent e)MouseMoved(MouseEvent e)保留一个空白实现)。

这里是MouseMotionListener的文档

票数 1
EN

Stack Overflow用户

发布于 2011-11-20 06:40:33

不让GUI类实现侦听器接口的另一个原因。最好的解决方案不是这样做,而是使用扩展MouseAdapter的匿名内部类或执行相同操作的私有内部类。否则,您会要求您的GUI做太多的事情,并为将来可能出现的调试问题做好准备。

票数 2
EN

Stack Overflow用户

发布于 2011-11-20 06:36:46

您需要添加

代码语言:javascript
复制
public void mouseMoved(MouseEvent) 

设置为AniWorld,或从已实现的接口列表中删除“MouseMotionListener”。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8197882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档