2017-02-16 33 views
0

Это мой код:Как отправить через переменные при использовании мыши слушателя в 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]); 
    } 

я не уверен, как решить эту проблему, как я не очень опытный с событиями программирования

+0

Вы попробовали финал '_CreatePlayers'? – vikingsteve

+0

Да, проблема связана с 'i' –

ответ

0

Это Простой способ:

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