覆盖抽象方法鼠标事件

时间:2016-03-29 16:13:26

标签: java methods handler mouselistener mousemotionlistener

我正在尝试跟踪鼠标移动,但是收到以下错误:MouseTracker.Handlerclass不是抽象的,并且不会覆盖java.awt.event.MouseListener中的抽象方法mouseExited(java.awt.event.MouseEvent)

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

public class MouseTracker extends JFrame{
    private JPanel board;
    private JLabel message;

    public MouseTracker(){
        super("Mouse Tracker");
        board = new JPanel();
        board.setBackground(Color.WHITE);
        add(board, BorderLayout.CENTER);

        message = new JLabel("No action preformed");
        add(message, BorderLayout.SOUTH);

        Handlerclass handler = new Handlerclass();
        board.addMouseListener(handler);
        board.addMouseMotionListener(handler);
    }

    private class Handlerclass implements MouseListener, MouseMotionListener{

        public void MousePressed(MouseEvent e){
            message.setText(String.format("The mouse was pressed, the current coordinates are: %d,%d", e.getX(), e.getY()));
            board.setBackground(Color.RED);
        }

        public void MouseClicked(MouseEvent e){
            message.setText(String.format("The mouse was clicked, the current coordinates are: %d,%d", e.getX(), e.getY()));
            board.setBackground(Color.BLUE);
        }

        public void MouseReleased(MouseEvent e){
            message.setText(String.format("The mouse was released, the current coordinates are: %d,%d", e.getX(), e.getY()));
            board.setBackground(Color.GREEN);
        }

        public void MouseEntered(MouseEvent e){
            message.setText(String.format("The mouse has entered the board, the current coordinates are: %d,%d", e.getX(), e.getY()));
            board.setBackground(Color.ORANGE);
        }

        public void MouseExited(MouseEvent e){
            message.setText(String.format("The mouse has exited the board, the current coordinates are: %d,%d", e.getX(), e.getY()));
            board.setBackground(Color.YELLOW);
        }

        public void MouseDragged(MouseEvent e){
            message.setText(String.format("The mouse was dragged, the current coordinates are: %d,%d", e.getX(), e.getY()));
           board.setBackground(Color.PINK);
        }
    }

    public static void main (String[]args){
        MouseTracker run = new MouseTracker();
        run.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        run.setSize(400,400);
        run.setVisible(true);
    }
}

1 个答案:

答案 0 :(得分:3)

MouseListener是:

public interface MouseListener extends EventListener {

/**
 * Invoked when the mouse button has been clicked (pressed
 * and released) on a component.
 */
public void mouseClicked(MouseEvent e);

/**
 * Invoked when a mouse button has been pressed on a component.
 */
public void mousePressed(MouseEvent e);

/**
 * Invoked when a mouse button has been released on a component.
 */
public void mouseReleased(MouseEvent e);

/**
 * Invoked when the mouse enters a component.
 */
public void mouseEntered(MouseEvent e);

/**
 * Invoked when the mouse exits a component.
 */
public void mouseExited(MouseEvent e);

}

所以你的方法错误了......他们应该从小写开始。