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

    JAVA - Riempire Array bidimensionale

    ciao a tutti...questo codice è errato o giusto?

    codice:
    for(int i=0;i<temporaneo.size();i++)
       for(int j=0;j<=1;j++) {
          Integer obj = new Integer(i);
          data[i][j] = obj;
       }
    dovrebbe riempire un array bidimensionale tipo questo:

    00
    11
    22
    33
    44
    55
    66
    ecc ecc

    PS temporaneo.size() = 39

  2. #2
    codice modificato in questo modo, ma nn funziona lo stesso

    codice:
    while(i<temporaneo.size()) {
       while(j<2) {
          Integer obj = new Integer(i);
          data[i][j] = obj;
          j++;
          }
       i++;
    }

    con i e j dichiarati uguali a 0

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Per forza: se si usano dei while, al posto dei più comodi for, bisogna stare attenti alle reinizializzazioni!
    codice:
    Possibilità 1
    
    for(int i=0;i<temporaneo.size();i++)
       for(int j=0;j<=1;j++)
          data[i][j] = new Integer(i);
    
    Possibilità 2:
    
    while(i<temporaneo.size()) {
       while(j<2) {
          data[i][j] = new Integer(i);
          j++;
       }
       i++;
       j = 0;
    }
    Rispondo all'autore del post: il tuo codice era giusto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    e allora come mai mi da errore questo?

    codice:
    import javax.swing.table.AbstractTableModel;
    import java.util.*;
    
    public class MyTableModel extends AbstractTableModel
    {
       private String[] columnNames = {"TESTATA", "PREZZO NETTO", "COPIE RESE"};
       private Object[][] data;
       private Vector temporaneo;
    	
       public MyTableModel() {
          temporaneo = ApriConnessione.getRisultatoQuery();
          System.out.println(temporaneo.size());
          for(int i=0;i<temporaneo.size();i++)
             for(int j=0;j<1;j++) {
                data[i][j] = new Integer(i);
             }
    }
    questo è l'errore:
    java.lang.NullPointerException
    at MyTableModel.<init>(MyTableModel.java:16)
    at sviluppoQuotidiani.<init>(sviluppoQuotidiani.java: 34)
    at menuListener.actionPerformed(menuListener.java:25)
    dove le rispettive righe sono:
    data[i][j] = new Integer(i); ---- mytablemodel
    tabella = new JTable(new MyTableModel()); ---- sviluppoQuotidiani
    sviluppoQuotidiani sq = new sviluppoQuotidiani(); ---- menulistener

    praticamente, l'errore parte da menulisener che crea l'oggetto della classe sviluppoquotidiani che a sua volta ha crea la JTable tabella usando la classe mytablemodel in cui riempio l'array bidimensionale data[][] con 2 cicli for annidati.

  5. #5
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    hai dimenticato di inizializzare data
    data = new Object[10][20];

  6. #6
    ilc0rv0@linux:~/Desktop/javaedic/ver.3> javac *.java
    MyTableModel.java:7: incompatible types
    found : java.lang.Object[]
    required: java.lang.Object[][]
    private Object[][] data = ApriConnessione.getRisultatoQuery().toArray();
    ^
    1 error
    ilc0rv0@linux:~/Desktop/javaedic/ver.3>
    ho provato a trasformare il Vector righe in un array di object ma ovviamente a me serve un array bidimensionale e toArray restituisce un array unidimensionale!

    come possofare per trasformare un Vector composto in questo modo:
    [testata, prezzo]
    [testata, prezzo]
    [testata, prezzo]
    [testata, prezzo]
    [testata, prezzo]

    in un Object[][]?

  7. #7
    ho provato a inizializzare data ed ora all'inizio funziona, ma si blocca subito il programma e in console ottengo un errore di nullPointerException al metodo della classe MyTableModel

    public Class getColumnClass(int c) {
    return getValueAt(0, c).getClass();
    }

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da ilc0rv0
    ho provato a trasformare il Vector righe in un array di object ma ovviamente a me serve un array bidimensionale e toArray restituisce un array unidimensionale!

    come possofare per trasformare un Vector composto in questo modo:
    [testata, prezzo]
    [testata, prezzo]
    [testata, prezzo]
    [testata, prezzo]
    [testata, prezzo]

    in un Object[][]?
    In questo modo:
    codice:
    Object[] tmp = null
    Object[][] result = new Object[vettore.size()][2]
    for (int i=0; i<vettore.size(); i++) {
       tmp = vettore.elementAt(i);
       result[i][0] = tmp[0];
       result[i][1] = tmp[1];
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    ho risolto commentando il metodo in cui ottenevo l'errore!
    mah! :master:
    cmq ora ottengo dei valori da 0 a 38 solamente nella prima colonna, mentre nella seconda ho tutti i campi vuoti!

    -----------------------------------------------------

    PROBLEMA RISOLTO
    il secondo for andava da i=0 a i<1 quindi era ripetuto solo una volta, ora funziona

    -----------------------------------------------------

    ora sono riuscito a riempire un arraybidimensionale...ora il problema è un altro, ma apro un altro topic

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.