2016-07-27 56 views
0

我想創建一個實現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的insteed所以我改變了這種和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) { 

    } 


} 
+3

嗯......你的類實現'keyListener'不'MouseListener' –

回答

1

你可能會遇到的問題是框架沒有顯示出來,這是因爲你沒有告訴它顯示的幀,使用下面的方法:

frame.setVisible(true); 

除了由喬恩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 

    } 

} 
+1

還要考慮[ 'MouseAdapter'](https://docs.oracle.com/javase/8/docs/api/java/awt/event/MouseAdapter.html),並參見[*初始線程*](http://docs.oracle.com的.com/JavaSE的/教程/ uiswing /併發/ initial.html)。 – trashgod

+0

我試過了,它只是打開了很多JFrames,我不知道爲什麼 –

相關問題