2012-04-11 11 views
7

Ich arbeite an einer Anwendung, die Swing verwendet. Ich habe erfolgreich eine Hauptbenutzeroberfläche erstellt, mit der der Benutzer arbeiten kann. Ich möchte jedoch dem Benutzer erlauben, seine Einstellungen zu ändern. Wie sollte ich das Einstellungsfenster erstellen? Wäre es besser, einen neuen JFrame mit dem Namen 'Einstellungen' zu verwenden, oder gibt es etwas Besseres als einen zweiten JFrame?Swing GUI - Erstellen eines 'Einstellungen' Fensters (richtig)

(Hinweis: Die Einstellungen JFrame, bei der Ausfahrt, nicht die Haupt-GUI schließen, wird es die DISPOSE Methode)

Ich mag würde dies in einer Art und Weise behandeln, die die geringste Menge an Speicher verbraucht, aber Professionalisierung der Anwendung.

+1

Siehe [Die Verwendung mehrerer JFrames, gute/schlechte Praxis?] (Http://stackoverflow.com/a/9554657/418556) Gute Frage, BTW. –

Antwort

5

Haben Sie ein CardLayout in Erwägung gezogen? http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

Persönlich finde ich die Verwendung eines separaten Dialogs für Konfigurationseinstellungen etwas veraltet. Ich bevorzuge Layouts mit Registerkarten, bei denen es sich um Kartenlayouts handelt, die oben mit einer Tab-Leiste versehen sind.

Sie können Ihre Anwendung problemlos in ein Kartenlayout der obersten Ebene einbinden und eine Menüaktion hinzufügen, um zur Konfigurationskarte zu wechseln, wobei die Schaltflächen "Bestätigung" oder "Abbrechen" zurück zur Hauptanwendungskarte wechseln.

Am Ende geht es wirklich darum, was Ihre Benutzer bevorzugen, aber denken Sie daran, dass viele von ihnen bevorzugen, was sie wissen, auch wenn es nicht eine bessere Lösung ist. Sie müssen ein Gleichgewicht finden, und wenn Ihre Implementierung rockt, dann werden sie schließlich wollen Ihre Ansatz für das Problem in anderen Anwendungen verwendet werden.

Ein perfektes Beispiel hierfür ist Tabbed Browsing, im Gegensatz zu mehreren Fenstern. Persönlich kann ich mir nicht vorstellen, wieder zum Browsen mit mehreren Fenstern zurückzukehren, da ich mich daran gewöhnt habe, Tabulatoren zu durchsuchen, aber zu einem bestimmten Zeitpunkt waren mehrere Fenster das einzige Spiel in der Stadt.

Am Ende, wenn Sie herausfinden, dass Sie die falsche Wahl getroffen haben, halten Sie Code sauber genug, um mit beiden Lösungen einfach zu implementieren. Solange Ihr Konfigurationsbildschirm nur ein einfacher JPanel ist (oder nur in JPanel eingeschlossen), sollte es nicht sehr schwer sein, dies zu tun.

+1

Ich stimme nicht zu, dass 'CardLayout' die beste Wahl dafür ist, ich persönlich bevorzuge es, Optionen in einem modalen' JDialog' oder 'JOptionPane' zu ​​sehen. OTOH, der Rest deiner Antwort spricht diese Art von Dingen an: "Menschen sind verschieden/Dinge ändern sich mit der Zeit". Tolle Beobachtungen und Erklärungen. –

+0

Ich mag die Grundidee des CardLayout. Scheint sehr sauber und ordentlich. Ich sehe, dass die meisten Programme einen modalen JDialog haben, in Bezug auf ein Einstellungsfenster. Ich werde versuchen, beide zu verwenden und zu sehen, welcher Weg sauberer aussieht. –

0

Sie an der ApplicationListener Schnittstelle suchen, vor allem bei der Methode ‚handlePreferences‘ dieser Schnittstelle.

Verwandte Themen