Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用mousemovementListener实现错误_Java - Fatal编程技术网

Java 使用mousemovementListener实现错误

Java 使用mousemovementListener实现错误,java,Java,我知道以前有人问过这个问题,但无论我在哪里看到这个问题,答案都毫无帮助。。。这就来了 我正在使用《学习Java》一书,有一个例子如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class HelloJava2 { public static void main( String [] args ) { JFrame frame = new JFrame( "Hello

我知道以前有人问过这个问题,但无论我在哪里看到这个问题,答案都毫无帮助。。。这就来了

我正在使用《学习Java》一书,有一个例子如下:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class HelloJava2 {
    public static void main( String [] args ) {
        JFrame frame = new JFrame( "HelloJava2" );
        frame.add( new HelloComponent2("Hello, Java!") );
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        frame.setSize( 300, 300 );
        frame.setVisible( true ); 
    }
}

class HelloComponent2 extends JComponent
    implements MouseMotionListener 
{
    String theMessage;
    int messageX = 125;
    int messageY = 95;

    public HelloComponent2( String message ) {
        theMessage = message;
        addMouseMotionListener(this);
    }

    public void paintComponent(MouseEvent e) {
        // Save the mouse coordinates and paint the message.
        messageX = e.getX();

        messageY = e.getY();
        repaint();
    }

    public void mouseMoved(MouseEvent e) {

    }
}
class HelloComponent2 extends JComponent
    implements MouseMotionListener
{
  String theMessage;
  int messageX = 125;
  int messageY = 95;

  public HelloComponent2( String message ) {
    theMessage = message;
    addMouseMotionListener(this);
  }

  public void paintComponent(MouseEvent e) {
    // Save the mouse coordinates and paint the message.
    messageX = e.getX();

    messageY = e.getY();
    repaint();
  }
  //Here it is the method you forgot include in your class
  @Override
  public void mouseDragged(MouseEvent e) {

  }

  public void mouseMoved(MouseEvent e) {

  }
}
我在编辑器中输入了它,但它给出了错误:

java:15:错误:HelloComponent2不是抽象的,并且不重写MouseMotionListener中的抽象方法mouseDragged(MouseeEvent) 类HelloComponent2扩展了JComponent ^ 1错误


我对这种语言是完全陌生的,所以我完全不知道实现甚至意味着什么。。。非常感谢您的帮助

问题是您忘记了在接口
MouseMotionListener
中实现名为
mouseDragged(MouseEvent)
的方法。因此,您只需要包含方法,类似于以下内容:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class HelloJava2 {
    public static void main( String [] args ) {
        JFrame frame = new JFrame( "HelloJava2" );
        frame.add( new HelloComponent2("Hello, Java!") );
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        frame.setSize( 300, 300 );
        frame.setVisible( true ); 
    }
}

class HelloComponent2 extends JComponent
    implements MouseMotionListener 
{
    String theMessage;
    int messageX = 125;
    int messageY = 95;

    public HelloComponent2( String message ) {
        theMessage = message;
        addMouseMotionListener(this);
    }

    public void paintComponent(MouseEvent e) {
        // Save the mouse coordinates and paint the message.
        messageX = e.getX();

        messageY = e.getY();
        repaint();
    }

    public void mouseMoved(MouseEvent e) {

    }
}
class HelloComponent2 extends JComponent
    implements MouseMotionListener
{
  String theMessage;
  int messageX = 125;
  int messageY = 95;

  public HelloComponent2( String message ) {
    theMessage = message;
    addMouseMotionListener(this);
  }

  public void paintComponent(MouseEvent e) {
    // Save the mouse coordinates and paint the message.
    messageX = e.getX();

    messageY = e.getY();
    repaint();
  }
  //Here it is the method you forgot include in your class
  @Override
  public void mouseDragged(MouseEvent e) {

  }

  public void mouseMoved(MouseEvent e) {

  }
}

谢谢你的回答,结果很愚蠢。。。我将参数放在paintComponent中,该参数应该放在不存在的mouseDragged中;(鼠标事件e)而不是(图形g)。。。复制时我一定跳过了它。。。我也不需要@Override,不知道它做什么。欢迎使用@AgustinFitipaldi。建议使用替代注释,其原因将在本节中解释