PDA

Visualizza la versione completa : [Java] Assegnare oggetto Vector a oggetto Object[][]


ilc0rv0
20-06-2005, 12:10
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:


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:



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?

ilc0rv0
20-06-2005, 12:23
ho provato a fare cosi:



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:


CAMPO 1 CAMPO 2
["testata", prezzo]["testata", prezzo]
["testata", prezzo]["testata", prezzo]
["testata", prezzo]["testata", prezzo]
["testata", prezzo]["testata", prezzo]

mentre mi servirebbe cosi:


CAMPO 1 CAMPO 2
"testata" prezzo
"testata" prezzo
"testata" prezzo
"testata" prezzo
"testata" prezzo

ilc0rv0
20-06-2005, 12:41
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:


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:


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);
}
}


:ciauz: :ciauz: :ciauz:

Loading