Je suis la programmation du jeu que la structure de mon projet est la suivante:MouseListener ne fonctionne pas dans JLabel
Nous avons une classe abstraite que tous les autres sont hérités de lui.
public abstract class Bird extends JLabel implements MouseListener {
private static final long serialVersionUID = 1L;
private int M_weight;
private int M_radius;
private long M_bornTime;
private int M_maxBirdPower;
private BirdState M_birdState;
private boolean B_prepareToShoot;
public Bird(int weight, int radius, long bornTime, int maxBirdPower,
BirdState birdState) {
this.M_weight = weight;
this.M_radius = radius;
this.M_bornTime = bornTime;
this.M_maxBirdPower = maxBirdPower;
this.M_birdState = birdState;
this.B_prepareToShoot = false;
this.addMouseListener(this);
}
public BirdState getBirdState() {
return M_birdState;
}
}
Et certaines classes comme RedBird qui ont hérité de la classe des oiseaux et met en œuvre la fonction abstraite ainsi.
public class RedBird extends Bird {
private static final long serialVersionUID = 1L;
public RedBird(int weight, int radius, long bornTime, int maxBirdPower,
BirdState birdState) {
super(weight, radius, bornTime, maxBirdPower, birdState);
}
@Override
public void mouseClicked(MouseEvent arg0) {
System.out.println("Clicked");
}
@Override
public void mouseEntered(MouseEvent arg0) {
}
@Override
public void mouseExited(MouseEvent arg0) {
}
@Override
public void mousePressed(MouseEvent arg0) {
}
@Override
public void mouseReleased(MouseEvent arg0) {
}
}
j'ai ajouté un objet de la classe RedBird dans JPanel, mais quand je clique sur cet objet, MouseListener
ne fonctionne pas. Quel est le problème ? Quelqu'un pourrait-il me donner une solution?
Merci à l'avance :)
* « Quel est le problème? » * Probablement mises en page et tailles. Pour quelque chose au-delà d'un WAG, publiez un [SSCCE] (http://sscce.org/). –
@AndrewThompson Qu'est-ce que WAG? –
Pourriez-vous poster le code où vous ajoutez le 'RedBird' dans' JPanel'? – Genzer