I have a JLabel[10] and I want to detect which label has been clicked and print which label of the label that has been clicked.
- I created a 
JLabelarray of 10. - Wrote a for loop to place an Image to every position of the label.
 - Added a 
MouseListenerto check which label has been clicked. 
The problem is I can't do this to get the source of my jLabelArr. The program will ask me to change my it to final.
   if(e.getSource() == jLabelArr[i]) 
Full code
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class JavaLabels extends JFrame {
private JLabel[] jLabelArr;
private JPanel jLabelPanel = new JPanel();
    public JavaLabels() {
        setLayout(new FlowLayout());
        jLabelArr = new JLabel[10];
        for(int i =0; i < 10; i++) {
            jLabelArr[i] = new JLabel(new ImageIcon("resources/image"));
            jLabelPanel.add(jLabelArr[i]); 
            jLabelArr[i].addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    if(e.getSource() == jLabelArr[i]) {
                        System.out.println("Label" + i + "was clicked");
                    }
                }
            });
        }
        add(jLabelPanel);
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        pack();
        setSize(400,600);
        setLocationRelativeTo(null);
        setVisible(true);
    }
    public static void main(String[] args) {
        new JavaLabels();
    }
}