Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di godx3
    Registrato dal
    Apr 2008
    Messaggi
    37

    NullPointerException con GridBagLayout

    Ciao a tutti, non capisco il motivo per cui venga lanciata un eccezione a puntantore null. Stavo scrivendo un semplice codice per imparare a usare il GridBagLayout. Lo posto di seguito:

    import java.awt.Component;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;

    import javax.swing.JButton;
    import javax.swing.JFrame;


    public class Finestra extends JFrame{

    private GridBagLayout layout;
    private GridBagConstraints constraints;

    private JButton[] bottoni;

    public Finestra() {
    super("GridBagLayout");

    layout = new GridBagLayout();
    setLayout(layout);
    constraints = new GridBagConstraints();

    bottoni = new JButton[4];

    for(int i = 0;i<bottoni.length;i++) {
    bottoni[i] = new JButton("Bottone " + i);
    i++;
    }



    constraints.fill = GridBagConstraints.BOTH;




    addComponent(bottoni[0],0,0,0,0);
    addComponent(bottoni[1],0,1,0,0);
    addComponent(bottoni[2],1,0,0,0);
    addComponent(bottoni[3],1,1,0,0);

    }

    private void addComponent(Component component, int row, int col, int width, int height) {
    constraints.gridx = row;
    constraints.gridy = col;
    constraints.gridwidth = width;
    constraints.gridheight = height;
    layout.setConstraints(component, constraints);
    add(component);
    }

    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: NullPointerException con GridBagLayout

    Originariamente inviato da godx3
    Ciao a tutti, non capisco il motivo per cui venga lanciata un eccezione a puntantore null.
    Presta attenzione ai constraints. gridwidth/gridheight specificano il numero di "celle" che il componente deve occupare. Può essere un numero da 1 a N oppure -1 (RELATIVE) oppure infine 0 (REMAINDER).

    Il tuo codice fallisce sul tuo secondo addComponent. Deduco (spero bene) che nella stessa riga non ci possono essere 2 REMAINDER.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di godx3
    Registrato dal
    Apr 2008
    Messaggi
    37
    Ho trovato l'errore... sbadatamente nel ciclo for ho aggiunto un incremento alla variabile intera i. Quindi il riferimento contenuto nel secondo elemento dell'array puntava a null...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da godx3
    Ho trovato l'errore... sbadatamente nel ciclo for ho aggiunto un incremento alla variabile intera i.
    Giusto! Non l'avevo visto. Ma anche se togli quel i++ la visualizzazione non è quella che vorresti. Cambia gridwidth/gridheight, non lasciarle a 0.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di godx3
    Registrato dal
    Apr 2008
    Messaggi
    37
    Si si... correzione già apportata... Grazie mille

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.