Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    problema con eccezione java.lang.NullPointerException

    Ciao a tutti!
    Ho scritto un metodo (il cui nome è BottonHandler) che serve per creare un jpanel. Quest'ultimo contiene una jlabel affiancata da un jpanel composto da 5 bottoni.

    codice:
    public JPanel BottonHandler(String nomeTesto, Color c) {
            
            JPanel panel = new JPanel();
            JLabel nome = new JLabel(nomeTesto);
            panel.add(nome);
            JButton[] buttons = new JButton[5];
    
    
            for (int i = 0; i < 5; i++) {
                JPanel ratio = new JPanel();
    
    
                buttons[i].setIcon(new ImageIcon("res/a3.png"));
        
                buttons[i].setBorderPainted(false);
                buttons[i].revalidate();
                buttons[i].repaint();
                ratio.add(buttons[i]);
                panel.add(ratio);
                    }
                    panel.setBackground(c);
            returnpanel;
    
    
    
    }

    Il PROBLEMA è che il compilatore quando esegue l'istruzione buttons[i].setIcon(new ImageIcon("res/a3.png")); mi tira una NullPointerException. Non riesco a capire cosa sbaglio e come risolvere il problema.
    Specifico che con questa istruzione voglio assegnare al bottone l'immagine res/a3.png.

    Premetto che non sono espertissima di java.
    Grazie a chi mi aiuterà.
    Ultima modifica di LeleFT; 18-05-2015 a 10:26 Motivo: Aggiunti tag CODE / Rimossa formattazione testo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da likeamelody Visualizza il messaggio
    Il PROBLEMA è che il compilatore quando esegue l'istruzione buttons[i].setIcon(new ImageIcon("res/a3.png")); mi tira una NullPointerException. Non riesco a capire cosa sbaglio e come risolvere il problema.
    È la solita questione .... che dovrebbe essere compresa prima (molto prima ...) di arrivare a fare cose "avanzate" come le interfacce grafiche.

    Istanziare un array es. new JButton[5] istanzia solo l'array, NON i 5 JButton. I 5 oggetti JButton li devi istanziare tu e assegnarli nell'array. Da fare nel corpo del tuo for, chiaramente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    poi perché istanzi 5 JPanel?
    cmq sotto il for devi istanziare i JButton
    button[i]=new JButton("button "+(i+1));
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  4. #4
    grazie a entrambi, ho risolto il problema dei jbutton e ho spostato il jpanel!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.