2017-02-16 1 views
0

Ceci est mon code:Comment envoyer l'ensemble des variables lors de l'utilisation d'écoute de la souris en java

JTextField[] _CreatePlayers = new JTextField[3]; 
    for (int i = 1; i < _CreatePlayers.length; i++) { 
     _CreatePlayers[i] = new JTextField("Player " + i+" input name here"); 
     _CreatePlayers[i].addMouseListener(new MouseAdapter(){ 
     @Override 
     public void mouseClicked(MouseEvent e){ 
      _CreatePlayers[i].setText(""); <- error is here as i is not inside the class made by mouse click 
     } 
    }); 
     _2Player.add(_CreatePlayers[i]); 
    } 

je ne suis pas sûr comment résoudre ce problème car je ne suis pas très expérimenté avec l'événement de programmation par

+0

Avez-vous essayé de rendre '_CreatePlayers' final? – vikingsteve

+0

ouais le problème est avec le «je» –

Répondre

0

Ceci est une solution de contournement simple:

for (int i = 1; i < _CreatePlayers.length; i++) { 
     final int finalI = i; 
     _CreatePlayers[i] = new JTextField("Player " + i+" input name here"); 
     _CreatePlayers[i].addMouseListener(new MouseAdapter(){ 
      @Override 
      public void mouseClicked(MouseEvent e){ 
       _CreatePlayers[finalI].setText(""); 
      } 
     }); 
    }