Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Uso jTable
Forum - Java - Uso jTable

Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 16:10
Sabato, 05/12/2009
...salve...ho bisogno urgentemente di aiuto...
Allora ho impostato il setEditing(true) nella jTable in modo tale da poter inserire delle informazioni manualmente...pero queste informazioni, le devo memorizzare automatikamente in un file...non saprei dunque quale evento utilizzare per fare questo discorso qui...
Ho una classe che implementa la Serializable nella quale ho dichiarato e istanziato degli attributi che andro a memorizzare..

public class x implements Serializable(){

      String nome;
      String cognome;
    
       public x(){
         nome="";
         cognome="";
      }
}


L'intestazione della mia jtable è impostata cosi di seguito:  
1)nome colonna: Nome
2)nome altra colonna: Cognome
in ogni colonna ci sono le row (modificabili) in cui manualmente inserisco il corrispettivo valore.
nel momento in cui io clikko su invio, dovrebbe salvare tutte le informazioni in un file ..
non riesco a capire come fare..
potreste aiutarmi ?!!

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 16:26
Sabato, 05/12/2009
fondamentale è la lettura del tutorial di Sun sul componente:
http://java.sun.com/docs/books/tutorial/uiswing/components ...

In particolare il capitolo sull'aggiornamento dei dati:
http://java.sun.com/docs/books/tutorial/uiswing/components ...#modelchange

PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 17:14
Sabato, 05/12/2009
ciao...grazie dei link ma non ho ancora risolto il problema..non capisco come fare a salvare i dati in un file una volta che li ho memorizzato manualmente nella jTable ..tutto questo quando premo INVIO e finisco di modificare i dati all'interno..

Ultima modifica effettuata da killer il 05/12/2009 alle 17:15
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 21:49
Sabato, 05/12/2009
si certo tu puoi modificare le celle anche senza gestirne l'evento, ma per fare il salvataggio dopo la modifica devi intercettare l'evento di modifica, e a quel punto dare il comando di salvataggio che dipende ovviamente da come vuoi salvare i dati.

prendendo il codice di Sun 2° link:

Codice sorgente - presumibilmente Java

  1. public void tableChanged(TableModelEvent e) {
  2.         int row = e.getFirstRow();
  3.         int column = e.getColumn();
  4.         TableModel model = (TableModel)e.getSource();
  5.         String columnName = model.getColumnName(column);
  6.         Object data = model.getValueAt(row, column);
  7.  
  8.        ...// Do something with the data... <---------------
  9.         // Fai qualcosa coi dati (tra cui salvarli)
  10.     }



Tu parli di classe serializzabile quindi per salvare:

Codice sorgente - presumibilmente Java

  1. out.writeObject(object); // object sarà l'oggetto da salvare
  2.  out.close();



Poi naturalmente dipende da come hai impostato il tutto; potresti usare un Vector di Vector per mantenere l'intero stato dell'intera tabella e ad ogni modifica riportarla li e serializare tutto.

PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 10:34
Lunedì, 07/12/2009
salve..grazie pero non ho capito cosa fa quel source che mi hai postato..potresti spiegarmelo ?!!

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 14:57
Lunedì, 07/12/2009
quel codice è il listener dell'evento di modifica di una tabelle, l'oggetto tableevent contiene le informazioni riguardo l'efento come ad esempio riga e colonna che rappresentano la cella modificata.
Una volta ottenuta la coordinata si ottiene un Object contenente il valore.

Il metodo del model invece ritorna semplicemente sotto forma di String l'intestazione della colonna.

PM Quote