Se desideri maggiori dettagli per favore fammelo sapere, o fai riferimento alle ultime righe di questa domanda. Ho già letto molto e sento che sto trasformando qualcosa di semplice in qualcosa di complicato e continuo a rimanere bloccato qua e là, quindi forse puoi aiutarmi in quei punti molto specifici.Come implementare correttamente MVC in Java con Swing?
Utilizzo Netbeans IDE 7 e JDK 7 e nessun framework. La prima finestra è un JFrame e tutte le altre finestre sono JDialogs con modal = true.
Domande:
Come faccio a implementare correttamente il pattern MVC con swing? Dalle idee qui sotto Qual è il migliore: (A) o (B)? O forse un altro ... Perché è meglio?
(A) principale:
MyModel model MyView view(model)
MyView:
MyController(this, model)
(B)
principale:MyModel model MyView View MyController controller(view, model)
quando clicco jbutton1 in MainFrame ne ho bisogno per aprire il SettingsFrame per modificare le impostazioni. dove dovrei istanziare la vista, il modello e il controller di SettingsFrame? Nel controller MainFrame?
In termini di organizzazione e implementazione MVC, come dovrei gestire le funzionalità più specifiche che (apparentemente) mancano di uno o due "piedini" MVC (sia Modello che Visualizza o Controller)? Dovrei creare classi vuote per loro?
a. The implementation of a TrayIcon b. A URL connection class (an HttpsUrlConnection which will update data in the main jframe and also upload/download files) c. A Directory Monitor (which will update data in the main jframe and also use the urlconnection to download a file) d. My own implementation of TableModel e. json
Come mantenere correttamente e utilizzare un oggetto con le impostazioni attraverso l'intera applicazione? Avrò bisogno delle sue informazioni in posti diversi (Views, Models, Controllers) ma potrebbero essere alterate dall'utente durante il runtime). È una buona idea rendere questo modello un singleton?
Cosa devo fare quando:
a. View needs some data from the Model? What I'm doing: using the reference of Model which I keep in the View b. View needs some data from the Controller? What I'm doing: using the reference of Controller which I keep in the View c. Model needs some data from the Controller? Still didn't happen but I have no idea how to do correctly d. Model needs some data from the View? What I'm doing: pulling all my hair from my head... e. Controller needs some data from the View? What I'm doing: using the reference of the View which I keep in the Controller f. Controller needs some data from the Model? What I'm doing: using the reference of the Model which I keep in the Controller g. One of FooModel, FooView or FooController needs data from one of BarModel, BarView or BarController? What I'm doing: thinking of jumping from the highest building...
Eventuali suggerimenti su come sapere se ho implementato correttamente MVC? Devo elaborare enormi dati in Model o Controller?
Sto anche utilizzando un DAO, quello che sto facendo è: il mio modello ha un carico MyModel
ArrayList()
metodo che crea un'istanza del DAO e restituisce l'ArrayList dei Modelli restituiti dal DAO, quindi a volte elabora questo ArrayList di Modelli nel Modello e talvolta autorizzo il Controller a elaborarlo. È una buona pratica o c'è un modo migliore? Per processo intendo: iterare attraverso ArrayList e ottenere i dati dai modelli.
I Have a PasswordCheck jDialog per limitare l'accesso ad alcune viste.Come posso riutilizzarlo in termini di MVC, in modo che io possa utilizzare la stessa finestra di dialogo di PasswordCheck per consentire/limitare l'accesso a diverse viste senza fare un pasticcio nel codice?
Altri suggerimenti, suggerimenti, idee, suggerimenti?
Contesto: sto necessario per sviluppare un software Java Swing MVC in breve tempo, anche se di default non sono uno sviluppatore Java e non così per implementare il pattern MVC, specialmente in Java (mi viene l'idea ma a volte mi manca conoscenza per implementare la relazione tra le classi). Le applicazioni sono fondamentalmente un monitor per file locali/online con un JTable nel frame principale per mostrare questi dati. Sto usando la nuova API WatchService per tenere traccia dei file locali e salvare le loro informazioni in un database h2 utilizzando un DAO e ricaricare questi dati nel frame jolly principale. Devo anche informare l'utente sui nuovi file (che sto usando TrayIcon). Per il monitoraggio/caricamento/download di file online sto utilizzando HttpsUrlConnection e json. Può anche consentire la personalizzazione delle impostazioni.
Grazie in anticipo per il vostro tempo e aiuto.
+1, mi piace l'idea presentata tanto quanto mi è piaciuto il collegamento, mi aiuterà anche con i miei sforzi :-) +1 alla domanda pure, molto ben spiegato, sono stato il primo a rinnegare entrambi: -) –
Grazie per la risposta.Cosa intendi per "vedere la mia nota sulla registrazione"? Ho già visto suggerimenti sui soli, ma, dato che l'hai consigliato, lo leggerò di nuovo più attentamente e con attenzione, e cercherò di risolvere i miei dubbi. L'ho anche svalutato. – dcr
+1 Vedi anche questo [esempio] (http://stackoverflow.com/a/3072979/230513), che segue un [schema] (http://stackoverflow.com/a/2687871/230513) simile allo schema citato. – trashgod