2011-11-02 22 views

risposta

8

Il modo in cui appresi le best practice di Swing era la lettura del codice sorgente Swing nel JDK e la pratica. Segui le pratiche di Sun e sarai sulla strada giusta.

Leggere le implementazioni di JTable, JTree, JScrollPane, i vari LookAndFeels, SwingWorker, SwingUtilities. La gestione degli eventi e gli schemi MVC sono estremamente complessi ma molto leggibili, mantenibili ed estensibili. Essenzialmente, ogni volta che usi un componente, leggi il codice sorgente e capisci cosa e perché lo fanno. Alla fine, inizierai a fare la stessa cosa.

E, soprattutto, codice. Scrivi alcuni programmi di grandi dimensioni e inizierai a vedere cose che non sembrano giuste o ottimali. Vieni a Stack e scopri cosa stai facendo di sbagliato o potresti fare di meglio. Scrivi qualcos'altro e fai lo stesso.

Detto questo, i seguenti progetti sono (o probabilmente) buon codice:

SwingX - I manutentori di SwingX erano Sun/ex-Sun persone, e ho sempre pensato a come incubatore non ufficiale per il futuro Funzionalità swing.

Squirrel (Un client JDBC) - Non ho effettivamente guardato la loro fonte, ma ho usato il programma per anni e non mostra nessuno dei difetti comuni nei programmi Swing scritti male. Con quanto è potente e quanto bene funziona, metterei dei soldi che è estremamente ben scritto.

InfoNode (Un potente framework di docking) - Ho utilizzato un bel po 'del loro codice, ed è piuttosto solido.

JFreeChart (Una potente libreria di grafici) - Non è il codice più grande, ma molto meglio della media, soprattutto tenendo conto di un vecchio progetto che non è mai stato concepito per fare tutto ciò per cui le persone lo usano. Detto questo, è molto estendibile e non ho mai avuto problemi a modellarlo secondo i miei bisogni (che sono molto, molto più delle sue intenzioni originali).

GlazedLists (Una libreria di elenchi basata su eventi altamente performante) - Non esattamente Swing, ma la gestione degli eventi è simile a Swing. Hanno anche implementazioni di modelli Swing e alcuni componenti personalizzati che sono estremamente veloci.

JIDE Common Layer: una vasta collezione di componenti personalizzati che funge da base per i componenti commerciali. Non ho esaminato il loro codice, ma i loro componenti sono belli, e dato che il loro obiettivo principale sono i componenti commerciali di Swing, ancora una volta, metterei i soldi che il loro codice è solido.

3

Ho trovato molto interessante vedere un'applicazione di qualità professionale scritta in Swing, ad esempio IntelliJ IDEA Community Edition. Ora che è open source, puoi controllare il codice e iniziare a scavare. Attenzione, non ci sono commenti!

Problemi correlati