2017-09-01 2 views
0

J'ai quelques problèmes en essayant d'utiliser le MouseListener. J'ai créé une classe appelée MouseManager qui implémente MouseListener puis j'ai importé le MouseListener sur le cadre mais quand je clique sur le cadre rien ne se passe. Alors, voici le code de la classe MouseManager:MouseListener ne fonctionne pas

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

} 

}

puis est ici le code que j'utiliser pour implémenter la classe MouseManager

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

mais comme je sayed avant rien ne se passe et la console ne montre aucun message; J'ai essayé de mettre le focusable de la fenêtre sur false mais ça continue ne fonctionne pas. Désolé pour mon mauvais anglais.

Répondre

0

Vous devez vous enregistrer pour les événements de la souris sur BlankArea et le panneau. Vous devriez lire here pour plus de détails.

Voici une partie de ce que vous avez à faire:

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

vous devez vous enregistrer l'événement dans la même classe que iE votre classe MouseManager en utilisant

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

objFrame.addMouseListener(this); 

Ici cela fait référence à la instance de votre classe actuelle. Vous devrez également créer l'objet du cadre car vous n'allez pas étendre la classe d'image directement.

Et puis appelez simplement faites l'objet votre travail serait fait.