Domanda

Il mio applicazione Java non è molto grande, ma vorrei farlo nel "modo giusto". Cerchi suggerimenti per non fare un gran casino ...

Sto usando swing, il database Application Framework e H2 Swing.

Si tratta di una singola applicazione cornice con diverse schede. La maggior parte delle schede rifletteranno alcuni aspetti dei dati nel database. Alcuni di loro saranno in grado di cambiarlo. Alcune schede avranno pulsanti o azioni che reindirizza ad un'altra scheda ... che è fondamentalmente.

vorrei mantenere le cose pulite, piuttosto portatile e flessibile (può abilitare disabilitare alcune schede per esempio, o aggiungere un po 'facilmente).

Ecco le domande:

1) Come avere le schede "rinfrescata" quando cambia il contenuto del database? Attuare alcune interfaccia ascoltatore? Dovrei definisco tale interfaccia o c'è qualcosa di già esistente posso riutilizzare?

2) Come "link" le diverse schede insieme in modo che sia facile saltare da uno all'altro (e potrebbe essere necessario portare qualche argomento per configurare la scheda di destinazione a destra "vista")

3) Se ho impostato certa preferenza con alcuni filtri in un'altra parte della domanda, come faccio a condividere tali impostazioni con l'intera applicazione?

E quando chiedo "come", voglio dire "qual è il modo migliore" ... posso ottenere che il lavoro già ... solo cercando lo strumento giusto per l'uso, modello di progettazione o tali.

È stato utile?

Soluzione

Se si utilizza swing, è possibile utilizzare schede riquadro di avere una tabella di layout.

Implementare un ascoltatore (come si sta progettando). Date un'occhiata a un'interfaccia osservabile in Java.

È possibile implementare un singoletto (ad esempio classe PreferenceManager) per mantenere la preferenza e accedervi attraverso l'applicazione per accedere alle proprietà.

Altri suggerimenti

Ci sono diverse strategie di costruzione applicazione GUI. Qui qualche articolo su.

Vuoi davvero un modello push in cui il server deve mantenere una connessione ad ogni cliente e quindi aggiornare tutti quando cambia qualcosa? Questo è fattibile con una manciata di clienti, ma diventa rapidamente problematico. E 'probabilmente meglio utilizzare un modello pull, in cui il client manualmente (periodicamente?) Chiede per gli aggiornamenti. Questo è anche un buon modo per utilizzare il blocco ottimistico con un campo LAST_MODIFIED nel DB. Tentativo un aggiornamento, se è cambiato dall'ultima volta ricaricato, avvertire l'utente e permettere loro di sovrascrivere / merge.

Come per Swing, in generale, è buona norma fattore di tutto ciò che non GUI correlato in classi di base ( 'logica di business') che il fuoco fuori eventi. Registrati tutte le classi Swing come listener evento appropriato e aggiornare l'interfaccia grafica in modo appropriato (SwingUtilities.invokeLater () è tuo amico qui).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top