2016-07-27 14 views
0

Ich möchte eine Klasse erstellen, die mouseListener-Schnittstelle implementieren (diese Klasse überschreibt alle mouseListener-Methoden), anstatt alle Methoden in der Hauptklasse zu überschreiben. Wenn ich dies tue, erhalte ich einen Fehler.So erstellen Sie eine Klasse, die mouseListener implementiert

Dies ist mein Code:

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 Code:

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) { 

    } 


} 

edit: Ich verstehe, mein Problem war, dass ich keyListener insteed von mouselistener in der Klasse MyMouseListener so änderte ich dies umsetzen und MyMouseListener-Code ist jetzt:

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

Nun ... Ihre Klasse implementiert 'keyListener' nicht' MouseListener' –

Antwort

1

Das Problem, das Sie könnte mit dem Rahmen nicht angezeigt wird, ist dies, weil Sie ihm nicht gesagt haben, den Rahmen zu zeigen, verwenden Sie die folgende Methode:

frame.setVisible(true); 

Zusätzlich angegeben als von Jorn Vernee, in der Klasse MyMouseListener müssen Sie die MouseListener-Schnittstelle anstelle des KeyListener implementieren.

habe ich versucht, diesen Code aus und es funktionierte gut:

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(); 
    } 
} 

-Code für 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

Sehen Sie sich auch [ 'MouseAdapter'] (https://docs.oracle.com/javase/8/docs/api/java/awt/event/MouseAdapter.html), und sehen Sie [* Initial Threads *] (http://docs.oracle com/javase/tutorial/uiswing/concurrency/initial.html). – trashgod

+0

Ich habe es versucht und es öffnet nur eine Menge von JFrames und ich weiß nicht warum –