Ciao!
Ho un problema: ho una finestra che dovrebbe contenere più di una tabella, invece continene una tabella sola!
Ho una ListNode DOSI, contenente diversi oggetti Dose!codice:import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class PannelloDosi extends JPanel { private ListNode DOSI; public PannelloDosi(ListNode DOSI) { this.DOSI = DOSI; setBackground(new Color(255,255,255)); int numTabelle = DOSI.length(); GestioneTabellaDosi gtd = new GestioneTabellaDosi(); for (int i=1; i<=numTabelle; i++) { JTable table = gtd.creaTabellaDosi((Dosi)DOSI.head()); add(table); DOSI = (ListNode)DOSI.tail(); } } }
Per ogni oggetto Dose dovrei creare una JTable con i dati dell'oggetto!
Il problema è che mi appare nella finestra solo una JTable, con i dati del primo oggetto presente nella lista (e di oggetti dosi nella lista ne ho tre al momento!). La lista dovrebbe scorrerla tutta!
Dove potrebbe essere il problema?
GRAZIE MILLE!codice:import javax.swing.*; public class GestioneTabellaDosi { private JTable table; public GestioneTabellaDosi() { table = new JTable(); } public JTable creaTabellaDosi(Dosi d) { ListNode IngConDosi = d.getIngConDosi(); int numIng = IngConDosi.length(); String[] nomi = new String[numIng + 1]; String[] dosi = new String[numIng + 1]; nomi[0] = d.getNomeProdotto(); dosi[0] = Float.toString(d.getTotale()); for (int j=1; j<=numIng; j++) { IngredienteConDose ing = (IngredienteConDose)IngConDosi.head(); String nome = ing.getNome(); String dose = Float.toString(ing.getDose()); nomi[j] = nome; dosi[j] = dose; IngConDosi = (ListNode)IngConDosi.tail(); } Object[][] datiCelle = new Object[numIng + 1][2]; /** Costruisco la griglia mettendo in prima colonna i nomi, * e in seconda colonna le dosi. */ for (int k=0; k<nomi.length; k++) { datiCelle[k][0] = nomi[k]; for (int c=1; c<2; c++) { datiCelle[k][c] = dosi[k]; } } String[] vuoto = new String[2]; vuoto[0] = ""; vuoto[1] = ""; TabellaDosi myTable = new TabellaDosi(datiCelle, vuoto); table.setModel(myTable); return table; } }

Rispondi quotando