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