Struttura di un JTable correttamente implementato con TableModel e Listeners?

1

Sono abbastanza nuovo in Java e nelle sue JTables e questo è il punto in cui mi trovo in difficoltà al momento.

Ho bisogno di creare una GUI che mostri i risultati di una query sql come SELECT * FROM tblPeople WHERE name='Doe' . La mia idea era quella di creare un JFrame che visualizza una tabella con tutti i record trovati.

Oltre a questo, ho anche bisogno di implementare un codice per gestire quando un utente fa doppio clic su un record o selezionandolo usando i suoi tasti freccia (funzione aggiuntiva: premendo 12 (es.) dovrebbe selezionare il 12 ° record).

Qual è il modo migliore per strutturare il mio programma (quali classi ho bisogno e soprattutto dove immagazzino la mia logica)? Mi è venuto in mente strutturandolo nel seguente modo:

  • Main.java ("view")
  • SQLConnection.java
  • PeopleTableModel.java (solo memorizza e restituisce i dati forniti dal ResultSet passato, "model" eredita da DefaultTableModel)
  • PeopleTable.java (memorizza fondamentalmente tutta la mia logica, inclusi KeyListener e MouseListener, "controller", ereditato da JTable)

Ci sono modi migliori per raggiungere i miei obiettivi? Se sì, quali sono?

    
posta bamboocha 11.11.2012 - 22:22
fonte

1 risposta

1

Ti consiglio di utilizzare il modello di progettazione modello-vista-controller. Nella vista della classe si avranno i componenti della GUI. Nel modello di classe avrai la logica del tuo programma. Nel controller scegli quali dati passare dal modello alla vista e viceversa.

Ti consiglio anche di usare una classe per ogni tabella da DB, come in ibernazione. E avrai una classe DBAccess, in cui accedi al DB e fai le query. Essere consapevoli del fatto che in Java è consigliabile che una classe abbia un'unica responsabilità. Ciò renderà il tuo programma più facile da testare.

    
risposta data 14.11.2012 - 19:02
fonte

Leggi altre domande sui tag