View Full Version : [JAVA] Passare dati tra JFrame
Ciao a tutti!
ho due classi mettiamo, A e B, che estendono JFrame.
Premendo un Bottone su A appare il JFrame B.
Su B faccio delle cose che vanno a modificare una JComboBox che è in A.
Per far ciò passo al costruttore di B il riferimento alla JComboBox che devo modificare, ovvero
class B extends JFrame {
private JComboBox parentBox;
public B(JComboBox cBox) {
parentBox = cBox;
}
}
su A richiamo B facendo new B(myJComboBox).
è giusta come soluzione? esistono migliori? Grazie :)
banryu79
28-07-2009, 15:13
è giusta come soluzione? esistono migliori? Grazie :)
Cosa intendi per "giusta"?
Se quello che hai fatto funziona e risolve il tuo problema, allora è una soluzione per definizione.
Una soluzione non può mai essere sbagliata: in quel caso non è una soluzione, no? ;)
Per quanto riguarda la possibilità che esitano solouzioni "migliori", non saprei, io al limite vedo un'alternativa: implementare B come estensione di JDialog e renderla modale.
La differenza è che con la tua soluzione l'utente può continuare a interagire con A anche con B aperta, e la comboBox in A si aggiornerà con le modifiche di B non appena in B l'interazione con l'utente scatena l'operazione di modifica; mentre con la versione in cui B è una JDialog modale di A l'utente non può tornare a interagire con A e vedere le modifiche al comboBox finchè non ha chiuso B.
intendevo magari c' era qualcosa di più elegante :D
cmq Grazie :)
franksisca
28-07-2009, 18:35
per la serie "spariamo col cannone alla mosca" potresti pensare all'utilizzo di un monitor che condivide informazioni di entrambi le classi...
oppure passare alla classe B un riferimento alla classe A e quindi "far fare il lavoro sporco ad A" senza da B toccare niente.
ma, come detto, se la tua soluzione va bene...hai risolto :D
morskott
28-07-2009, 19:27
La soluzione tua va bene, se vogliamo essere pignoli allo spasimo però esponi alla classe B qualcosa che è sotto il controllo della classe A, cioè il JComboBox, così crei una dipendenza di future implementazioni (se poi cambierai A togliendo o modificando il jcombobox dovrai toccare pure B), se invece ad A aggiunge un metodo che fa quello che fai fare a B e a B passi l'oggetto A che quando cambia la jcombobox invece chiama il metodo su A gsarantisci che alla modifica di A non devi starti a preoccupare di come B utilizza il jcombobox, ma son finezze!!!
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.