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

    JAVA - assegnare oggetto Vector a oggetto Object[][]

    Ciao a tutti,
    dovrei riempire una tabella con i dati provenienti da una query sql effettuata nella classe ApriConnessione in cui dopo la query riempio un Vector in questo modo:
    codice:
    while (res.next()) {
       Vector vett = new Vector(); 
       vett.addElement(res.getString("testata"));
       vett.addElement(res.getString("pr_netto")); 
       righe.addElement(vett);
    }
    inoltre nella stessa classe c'è un metodo getRisultatoQuery di questo tipo:

    codice:
    public static Vector getRisultatoQuery() {
       return righe;
    }
    che mi ritorna un Vector che ho riempito in precedenza.
    Ovviamente res è un oggetto ResultSet.

    Il Vector righe effettivamente viene riempito in quanto ho messo
    System.out.println(righe.get(i))
    in un ciclo for che mi stampa sulla console tutto il vettore.
    Il problema quindi è che non riesco ad assegnare all'oggetto, data[][], della classe Object l'oggetto, righe, della classe Vector
    qualcuno ha qualche idea?

  2. #2
    ho provato a fare cosi:

    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();
       data = new Object[temporaneo.size()][columnNames.length];
       for(int i=0;i<temporaneo.size();i++)
          for(int j=0;j<2;j++)
             data[i][j] = temporaneo.get(i);
    }
    ma ovviamente essendo temporaneo un Vector cosi:
    ["testata", prezzo]
    ["testata", prezzo]
    ["testata", prezzo]
    ["testata", prezzo]
    ecc ecc

    in ognuno dei 2 campi della tabella ottengo gli stessi valori:
    codice:
         CAMPO 1             CAMPO 2
    ["testata", prezzo]["testata", prezzo]
    ["testata", prezzo]["testata", prezzo]
    ["testata", prezzo]["testata", prezzo]
    ["testata", prezzo]["testata", prezzo]
    mentre mi servirebbe cosi:
    codice:
     CAMPO 1    CAMPO 2
    "testata"    prezzo
    "testata"    prezzo
    "testata"    prezzo
    "testata"    prezzo
    "testata"    prezzo

  3. #3
    per i moderatori:
    Forse sarebbe meglio cambiare il titolo del topic, per rendere la ricerca più facile a qualcuno che dovesse riempire una tabella con MyTableModel


    io ho risolto cosi:

    invece di riempire un solo Vector, ne ho riempiti 2:

    codice:
    while (res.next()) {
       testate.addElement(res.getString("testata"));
       prezzi.addElement(res.getString("pr_netto"));
    }
    poi ho scritto 2 metodi invece di uno solo, che restituiscono i 2 vector:
    testate e prezzi.

    poi, per riempire la tabella ho fatto cosi:
    codice:
    public MyTableModel() {
       int numRighe = vecTestate.size();
       int numColonne = columnNames.length;
       data = new Object[numRighe][numColonne];
          for(int i=0;i<numRighe;i++)
             for(int j=0;j<(numColonne-1);j++) {
                if(j==0)
                   data[i][j] = vecTestate.get(i);
                else
                   data[i][j] = vecPrezzi.get(i);
             }
    }

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.