Ciao!
Ho un problema: ho una finestra che dovrebbe contenere più di una tabella, invece continene una tabella sola!
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();
}
}
}
Ho una ListNode DOSI, contenente diversi oggetti Dose!
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?
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;
}
}
GRAZIE MILLE!