2017-09-01 6 views
0

Ich habe einige Probleme beim Versuch, den MouseListener zu verwenden. Ich habe eine Klasse namens MouseManager erstellt, die MouseListener implementiert und dann den MouseListener in den Frame importiert habe, aber wenn ich auf den Frame klicke, passiert nichts. Also hier ist der Code der MouseManager Klasse:MouseListener funktioniert nicht

public class MouseManager implements MouseListener { 

@Override 
public void mouseClicked(MouseEvent e) { 
    int mx = e.getX(); 
    int my = e.getY(); 

    System.out.println("Clicked: " + mx + " " + my); 

} 

@Override 
public void mouseEntered(MouseEvent arg0) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void mouseExited(MouseEvent e) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void mousePressed(MouseEvent e) { 
    int mx = e.getX(); 
    int my = e.getY(); 

    System.out.println(mx + " " + my); 

} 

@Override 
public void mouseReleased(MouseEvent e) { 
    int mx = e.getX(); 
    int my = e.getY(); 

    System.out.println("Released: " + mx + " " + my); 

} 

}

und dann ist hier der Code, den ich die Klasse MouseManager zu implementieren verwenden, um

MouseManager MouseMan = new MouseManager(); 
Window.frame.addMouseListener(MouseMan); 

aber wie ich sayed vor nichts passiert und Die Konsole zeigt keine Nachrichten an. ich versuchte, das fokussierbare Fenster auf false zu setzen, aber es funktioniert nicht weiter. Sorry für mein schlechtes Englisch.

Antwort

0

Sie müssen sich für Mausereignisse auf blankArea und dem Panel registrieren. Sie sollten here für weitere Details lesen.

Hier ist ein Teil dessen, was Sie tun müssen: nur dh Ihre MouseManager Klasse

public class MouseManager implements MouseListener { 
    Frame frame = new Frame(); 
    frame.addMouseListener(this); 
    .... 
1

Sie haben die Veranstaltung in derselben Klasse zu registrieren, indem

Frame objFrame = new Frame("MouseListener Demo"); 

objFrame.addMouseListener(this); 

Hier mit diesem auf das bezieht sich Instanz Ihrer aktuellen Klasse. Sie müssen auch das Objekt des Frames erstellen, da Sie die Frame-Klasse nicht direkt erweitern.

Und dann einfach anrufen machen Sie das Objekt, Ihre Arbeit würde getan werden.

Verwandte Themen