Frage

Mein Java-Anwendung ist nicht sehr groß, aber ich mag es den „richtige Weg“ tun. Suche nach Anregungen nicht ein großes Durcheinander machen ...

Ich bin mit Swing, die Swing-Application Framework und H2-Datenbank.

Es ist eine einzige Rahmenapplikation mit verschiedenen Registerkarten. Die meisten Registerkarten werden einige Aspekte der Daten in der Datenbank reflektieren. Einige von ihnen werden in der Lage, es zu ändern. Einige Registerkarten haben Schaltflächen oder Aktionen, die zu einer anderen Registerkarte Umleitung wird ... das ist im Grunde ist es.

Ich möchte die Dinge sauber halten, und nicht tragbar und flexibel (kann einige Registerkarten zum Beispiel ermöglichen, deaktivieren oder einige leicht hinzufügen).

Hier sind die Fragen:

1) Wie Tabs haben „aufgefrischt“, wenn die Inhalte der Datenbank von Änderungen? Implementieren Sie eine Listener-Schnittstelle? Soll ich diese Schnittstelle definieren oder es ist etwas bereits bestehende ich wiederverwenden können?

2) Wie „link“ die verschiedenen Registerkarten zusammen, so dass es leicht von einem zum anderen zu springen ist (und kann einige Argument zum Einrichten der Registerkarte Ziel auf der rechten Seite „Ansicht“)

tragen

3) Wenn ich eine Präferenz mit einigen Filtern in einem anderen Teil der Anwendung festgelegt, wie kann ich solche Einstellungen mit der ganzen Anwendung teilen?

Und wenn ich frage „wie“, ich meine wirklich „Was ist der beste Weg,“ ... ich kann bekommen, dass die Arbeit bereits ... gerade auf der Suche nach dem richtigen Werkzeug zu verwenden, Designmustern oder so.

War es hilfreich?

Lösung

Wenn Swing verwenden, können Sie verwenden Tabbed Pane zu haben, eine tabellarische Layout.

Implementieren eines Zuhörers (wie Sie planen). Werfen Sie einen Blick auf beobachtbare Schnittstelle in Java.

Sie können eine Singleton implementieren (zB PreferenceManager Klasse) den Vorzug und greifen Sie über die Anwendung den Zugriff auf Eigenschaften zu halten.

Andere Tipps

Es gibt verschiedene Strategien der GUI-Anwendung Gebäude. Hier einige Artikel über.

Haben Sie wirklich ein Push-Modell wollen, wo der Server eine Verbindung zu jedem Kunden zu halten hat und dann aktualisieren, um sie alle, wenn sich etwas ändert? Dies ist möglich, mit einer Handvoll Kunden, sondern wird schnell problematisch. Es ist wahrscheinlich besser, ein Pull-Modell zu verwenden, wobei der Client manuell (in regelmäßigen Abständen?) Für Updates fragt. Dies ist auch ein guter Weg, optimistische Sperren mit einem last_modified Feld in der DB zu verwenden. Der Versuch, ein Update, wenn es sich verändert hat seit dem letzten neu geladen wird, den Benutzer warnen und ihnen erlauben, zu überschreiben / merge.

Wie für Swing in der Regel am besten Praxis ist alles Faktor heraus, dass nicht in den Kern-Klassen ( ‚Business-Logik‘) im Zusammenhang GUIs das Feuer off-Veranstaltungen. Registrieren Sie alle Ihre Swing-Klassen als das entsprechende Ereignis-Listener und aktualisieren Sie die gui in geeigneter Weise (SwingUtilities.invokeLater () ist dein Freund hier).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top