Hallo Leute des Internets. Ich bin in einer Situation, wo ich eine GUI erstellen muss, um Objekte verschiedener Klassen zu erstellen, und ich möchte dies auf generische Weise tun. Genauer gesagt besteht das ganze Konzept darin, verschiedene Produkte für einen Laden zu schaffen. In diesem Beispiel sind Produktkategorien Notebooks und Stifte. Nachdem Sie eine Produktkategorie aus einer Liste ausgewählt haben, wird ein JFrame-Formularfenster angezeigt, in dem der Benutzer aufgefordert wird, genauere Angaben zum Produkt zu machen.Sollte ich eine Datenklasse von ihrer Java Swing GUI trennen?
Nicht alle Produkte erfordern jedoch die gleichen Daten. Nehmen wir an, wir haben eine Notebook-Klasse, die die Seitennummer als Integer benötigt, und eine Pen-Klasse, die die Stiftfarbe als String benötigt. Offensichtlich müssen wir die Erstellung dieses Fensters für jeden Produkttyp unterschiedlich handhaben.
Also meine Frage ist, wo soll ich mit der Erstellung dieses Fensters umgehen? Ist es in Ordnung, in jeder Datenklasse eine Methode zu erstellen, die einen vollständigen JFrame der benötigten Form erzeugt, oder sollte ich die Datenklassen separat behandeln?
Vielen Dank im Voraus!
Vielen Dank für Ihre schnelle Antwort! Also sollte ich GUI nicht in meine Modellklassen einbeziehen, aber ich weiß immer noch nicht, wo es am besten ist, damit umzugehen. Ich muss immer noch ein Stück Code implementieren, das sagt: "Wenn Sie ein Notebook sind, benutzen Sie dieses Formular", und dies innerhalb der GUI-Klasse zu tun, scheint ein schlechter Ansatz zu sein. Was würden Sie mir in diesem Fall vorschlagen? – Thanos
Wenn man bedenkt, dass es sich um eine Swing-Anwendung handelt, könnte ich verschiedene Panels erstellen, die von einem Standard-JPanel mit einigen gemeinsam genutzten Informationen erben. Zum Beispiel "BookPanel, PenPanel". Sie können dann ein neues Standardfenster erstellen (als Popup oder wie gewünscht), das je nach Auswahl des Benutzers das richtige Panel lädt. Das PenPanel wird dann einen Controller haben, der die korrekten Daten aus dem Modell holt. ODER; Sie könnten ein wirklich flexibles Panel haben, das den Controller fragt "Welche Klasse bin ich bestanden, ein Buch oder Stift? Basierend auf diesen Informationen, bauen Sie den Inhalt des Panels –
Vielen Dank für Ihre Hilfe! Ich werde Ihre Logik folgen – Thanos