Muezo ha scritto:
Allora il model è quello di default "DefaultTableModel"
Ok, anche se non è il massimo ma va bene, non è questo il punto.
Muezo ha scritto:
per quanto riguarda il JDialog lo creo con dei campi da compilare e un bottone che prende i dati e li porta nella tabella.
Per la dialog fai così:
1) crea una classe che estende JDialog
2) nel costruttore crea pure la interfaccia utente come vuoi, creando/disponendo i componenti, registrando listener, ecc... insomma tutto quello che serve. Fai in modo che il costruttore riceva come argomento un Frame (passerai il tuo JFrame principale) in modo che JDialog abbia il "owner". E sopratutto che la dialog sia costruita come "modale" (vedi costruttori di JDialog).
3) In genere si hanno almeno 2 pulsanti, uno di "conferma" l'altro di "annulla". Se li hai entrambi, fai in modo che semplicemente chiudano la dialog e assegnano ad un campo interno boolean un valore true (=conferma) o false (=annulla).
4) Metti nella classe dei metodi setter/getter che assegnano/leggono i dati ai/dai componenti. Attenzione: non "esporre" i componenti con un getter che es. restituisce JTextField (e meno ancora, non far accedere direttamente ai campi di istanza dei componenti). Perché non sarebbe un buon design.
5) Metti un metodo es. doInput() che imposta il flag di conferma a false, visualizza la dialog ( setVisible(true) ) e restituisce il flag di conferma.
A quel punto nella parte "client" (dove si
usa la dialog) basta fare una cosa del tipo.
TuaDialog d = new TuaDialog(tuoFramePrincipale);
d.setXXX(....); // imposta tutti i dati (se necessario)
d.setYYY.......
if (d.doInput()) {
... = d.getXXX(); // prendi tutti i dati
.....
}
E come vedi diventa tutto semplice e "pulito". La dialog non deve "sapere" nulla di tabelle o del resto della tua applicazione.