Newsgroup: it.comp.java
Titolo: JTable, ModelTable e finestra

scusatemi se sto inondando il newsgroup di post ma ho una marea di 
dubbi. sto realizzando un'applicazione mvc in cui la finestra 
(appartenente alla view) avrà una tabella da cui estrarrà i dati immessi 
dall'utente e li invierà alla relativa controller.
ora il problema è che non ho capito bene come funziona la table e la 
relativa modelTable perchè ho letto su diversi siti che la gestione dei 
dati della table devono essere fatti attraverso una relativa modelTable, 
io invece credevo di poter tranquillamente estrarre i dati dalla table 
(interi) senza utilizzare altre classi o funzioni.
qualcuno gentilmente mi può spiegare?
alcuni post dietro ho inserito anche il codice della finestra che 
ingloba la table. grazie a tutti

il modello della JTable contiene oggetti e ti visualizza la loro
rappresentazione in stringa
se tu carichi all'interno dei dati rispondenti ai tipi primitivi (int,
char, boolean... insomam quelli scritti in minuscolo) questi vengono
automaticamenti convertiti in Oggetti con valore equivalente
(operazione di AutoBoxing).
Detto ciò quando tu estrai qlc dal modello della tabella estrai o
ggetti
Spero di essere stato d'aiuto
Marco

 
ti ringrazio per l'aiuto. quindi quando estraggo i dati basta che li 
trasformo nel relativo tipo e dovrei essere a posto!?

foxmolder5 ha scritto:

Il motivo e' semplice e mi stupisce un po' la tua domanda, perche fai 
diretto cenno alle nozioni che ti servono per capire il tuo problema: 
dici di voler costruire un applicazione MVC, quindi suppongo tu sappia 
cosa sia l'MVC. Bene, Swing implementa MVC, quindi ogni widget che 
memorizza dati, liste e tabelle ad esempio, ha un elemento di view e uno 
di model. Quindi, quando fai new JTable, stai instanziando l'elemento 
della view, che pero e' "backendato" da un oggetto TableModel, il suo 
model. Se inizializzi una JTable senza particolari parametri, vado a 
memoria, crei una JTable con un model di default, altrimenti ne puoi 
creare uno tuo e usare quello chiamando setModel. L'accesso ai dati 
avviene chiaramente operando sul TableModel (prova a confrontare i 
metodi di JTable e TableModel sulla homepage del tuo browser, cioe i 
JavaDoc [sono la tua homepage, giusto? ;) ]) nota come i metodi di 
JTable sono piu simili a "getSelectedRow, getSelectionInterval" (anche 
qui vado a memoria) quindi metodi che hanno direttamente a che fare con 
lo stato "grafico" dell'elemento, mente quelli di JTable sono piu simili 
a "getValueAt", cioe accesso ai dati.
Cmq il tutorial di swing sul sito della sun potra essere piu esaustivo 
di me.
Ciao!
Co

 mente quelli di JTable sono piu simili a "getValueAt", cioe accesso ai dati.
volevo dire "mentre quelli di TableModel sono piu simili a "getValueAt", 
cioe accesso ai dati."
Co


Concordo con quello appena detto, cmq, se proprio devi lavorare con
dati semplici puoi bypassare l'utilizzo del TableModel andando ad
agire direttamente (anche se lo sconsiglio per questioni di chiarezza)
sui mnetodi della JTable  table.setValueAt(value, row, column) e
tabla.getValueAt(row, column), che agiscono sul modello della tabella
al posto tuo. la lista di dati (ripeto: per dati elementari come ad
esempio tutti i dati dello stesso tipo) puoi passare la struttura
della tabella nel costruttore stesso. Per maggiore precisione consulta
la JavaDoc e... un consiglio: PRIMA DI METTERTI ALLE PRESE CON SWING
LEGGI ATTENTAMENTE TUTTA LA PARTE DEL TUTORIAL RELATIVA A SWING.

 
infatti penso di fare in questo modo perchè così evito di appesantire 
ulteriormente il programma poichè i dati che utilizzerò sono semplici 
interi, distinti e diversi da quelli che andrà ad utilizzare la 
controller ( e che immetterà in una model).