覆盖抽象方法鼠标事件
Overiding abstract method mouse events
我正在尝试跟踪鼠标移动,但收到以下错误:MouseTracker.Handlerclass 不是抽象的并且不会覆盖 java.awt.event.MouseListener[= 中的抽象方法 mouseExited(java.awt.event.MouseEvent) 11=]
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);
}
}
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);
}
所以你的方法中的大小写错误...它们应该以小写字母开头。
我正在尝试跟踪鼠标移动,但收到以下错误:MouseTracker.Handlerclass 不是抽象的并且不会覆盖 java.awt.event.MouseListener[= 中的抽象方法 mouseExited(java.awt.event.MouseEvent) 11=]
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);
}
}
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);
}
所以你的方法中的大小写错误...它们应该以小写字母开头。