Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Quote Originariamente inviata da andbin Visualizza il messaggio
    No, perché qui il problema è il riferimento alla variabile 'i'.

    Più semplicemente (e più pulito):

    codice:
    for (int i = 0; i < 8; i++) {
        JPanel panel = new JPanel();
        // altri setup su panel
        
        panel.addMouseListener(new MouseAdapter() {
            // i metodi qui POSSONO fare riferimento a panel, che è quel JPanel distinto per ciascun ciclo
        });
    
        // .. altro (aggiungi panel dove vuoi)
    }

    Da Java 8 panel può non essere final, prima di Java 8 DEVE essere final.
    Ho provato cosi
    codice:
                public void AggiungiPannelli(){
            for (int i = 0; i < 8; i++) {
                JPanel panel = new JPanel();
                panel.setBackground(Color.BLACK);
                panel.addMouseListener(new MouseAdapter() {
    @Override
                    public void mousePressed(MouseEvent e) {
                        panel.setBackground(Color.RED);
                    }
    @Override
                    public void mouseReleased(MouseEvent e) {
                        panel.setBackground(Color.BLACK);
                    }
                });
                pannelli.get(i).add(panel);
            }
    in questo modo non mi da righe con errori quando lo avvio, ma poi non parte più non si apre nemmeno il frame e la console mi dice:

    java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    at java.util.ArrayList.get(ArrayList.java:429)
    at showgame.Playground.AggiungiPannelli(Playground.java:443)
    at showgame.Playground.DisegnaPiramideIniziale(Playground.java:421)
    at showgame.Playground.initialize(Playground.java:814)
    at showgame.Playground.<init>(Playground.java:78)
    at showgame.Playground$1.run(Playground.java:68)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessI mpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da mike1991 Visualizza il messaggio
    codice:
                pannelli.get(i).add(panel);
    Semplicemente

    pannelli.add(panel);


    P.S. Per cortesia NON postare codice "colorato"! Copialo prima in Notepad/Notepad++/ecc.. poi da lì lo ricopi e solo dopo lo incolli qui sul forum.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Semplicemente

    pannelli.add(panel);


    P.S. Per cortesia NON postare codice "colorato"! Copialo prima in Notepad/Notepad++/ecc.. poi da lì lo ricopi e solo dopo lo incolli qui sul forum.
    Hai ragione funziona cosi, che stupido sono stato... grazie mille veramente...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.