in genere quello che fai tu è fatto per riempire in automatico campi.
Che so, inizi a mettere il nome e se l'articolo c'è vai a riempire già gli altri campi (che spesso poi a quel punto fissi non editabili). Visto che già mi parli di codice articolo io inizialmente opterei per una situazione in cui se premi invio o tab oppure ti sposti verso un altro textfield fai la ricerca per quel codice inserito, se trovato riempi tutto altrimenti consenti l'inserimento di altri dati.
Farei questa semplificazione perché ti concentri inizialmente su come fare la ricerca e bene e poi implementi le altre finezze.
A quanto ho capito è una roba locale, quindi che te frega di tenere la roba in memoria? quando ti serve fai una query e via. Tenere la roba in memoria crea problemi come ti dicevo di consistenza (se un altro utente modifica un campo devi agire di conseguenza) e problemi di spreco ( non è detto che usi l'intera tabella).
Senza fare riferimento a bean questa è la soluzione migliore (per me) per "esercitarti" con swing, ereditarietà e astrazione.