如何创建实现mouseListener的类

时间:2016-07-27 21:42:37

标签: java swing mouselistener

我想创建一个实现mouseListener接口的类(此类将覆盖所有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中实现了mouseListener的keyListener,所以我更改了这个,现在是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) {

    }


}

1 个答案:

答案 0 :(得分:1)

您可能遇到的问题是框架没有显示,这是因为您没有告诉它显示框架,请使用以下方法:

frame.setVisible(true);

此外,如Jorn Vernee所述,在您的类MyMouseListener中,您必须实现MouseListener接口而不是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

    }

}