我想创建一个实现 mouseListener 接口(interface)的类(该类将重写所有 mouseListener 方法),而不是重写主类中的所有方法。当我尝试这样做时,出现错误。
这是我的代码:
import javax.swing.*;
public class Game {
public Game(){
JFrame frame = new JFrame();
frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.addMouseListener(new MyMouseListener());
}
public static void main(String[] args) {
Game app = new Game();
}
}
MyMouseListener 代码:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class MyMouseListener implements KeyListener{
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
}
编辑:我知道我的问题是我在 MyMouseListener 类中实现了 keyListener 而不是 mouseListener,所以我更改了这一点,MyMouseListener 代码现在是:
public class MyMouseListener extends Game implements MouseListener{
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
最佳答案
您可能遇到的问题是框架未显示,这是因为您没有告诉它显示框架,请使用以下方法:
frame.setVisible(true);
此外,正如 Jorn Vernee 所说,在您的 MyMouseListener 类中,您必须实现 MouseListener 接口(interface)而不是 KeyListener。
我尝试了这段代码,效果很好:
import javax.swing.JFrame;
public class Game {
public Game(){
JFrame frame = new JFrame();
frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.addMouseListener(new MyMouseListener());
frame.setVisible(true);
}
public static void main(String[] args) {
Game app = new Game();
}
}
MyMouseListener 的代码:
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class MyMouseListener implements MouseListener{
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("clicked");
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
关于java - 如何创建一个实现 mouseListener 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38623693/