Quote Originariamente inviata da mike1991 Visualizza il messaggio
codice:
        JPanel panel = new JPanel();
        panel.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                panel.setBackground(Color.RED);
            }
            @Override
            public void mouseReleased(MouseEvent e) {
                panel.setBackground(Color.YELLOW);
            }
        });
        panel.setBounds(107, 52, 80, 71);
        frame.add(panel);
il problema è che non riesco nella maniera più assoluta ad applicare questi due metodi a ogni singolo pannello contenuto nell'ArrayList. Qualcuno sa aiutarmi? Grazie mille in anticipo
Se questo codice che ho quotato lo metti (o l'hai già messo) nel for che si vede prima (quel for (int i = 0; i < 8; i++)), non ci sono problemi.
Perché ad ogni ciclo hai un nuovo JPanel e ciascuno ha agganciato la sua implementazione del MouseListener, che fa riferimento al panel relativo poiché quel "panel" nei due metodi si riferisce alla variabile JPanel che hai definito prima del addMouseListener, appunto che è distinta per ciascun ciclo.

E questo tra l'altro vuol dire che stai usando Java 8, perché in questa release le anonymous inner-class possono fare riferimento alle variabili locali del metodo anche se non sono fisicamente marcate final, purché siano "effectively final".


P.S. in generale non postare mai codice "colorato", è un casino quotarlo per intero o peggio parzialmente.