Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo Experten,
es tut mir leid dass ich euch damit auf die Nerven gehen muss aber ich bin leider echt kein Software-Experte trotz meiner Java-Software-Ausbildung vom letzten Jahr.
Ich habe eine Idee zu einer App und brauche sehr schnell einfach nur einen Prototypen.
Jetzt das ganze mit Java aufzubauen mittels den Tools die dort angeboten werden denke ist keine gute Idee.
Jetzt gibt es so neue Tools wie "Flutter".
Was würdet ihr mir empfehlen wenn ich eine gaaaaaanz einfache App erstellen möchte wo dir Fragen gestellt werden und dann am Ende eine Auswertung kommt anhand deiner Antworten!?
Also meine Info ist, Flatter ist ein unabhängiges Tools und es kann in alle Platformen compiliert/übersetzt werden. Also egal ob Android oder iOS.
Ich will nur so rasch wie möglich einen Prototypen aufsetzen. Mit dem geringsten Aufwand quasi.
Das als Formular in Java zu machen wäre eine Lösung die mir einfällt aber glaube extrem umständlich wäre. Ich müsste so 10 bis 20 Fragen tellen. Mit 2 oder 3 Antwortmöglichkeiten. Und dann eine Auswertung mit End-resultat.
Am Ende des Tages will man doch eh immer alles auf alle Platformen zum laufen bekommen. Denke auch das es für fast jeden Sch* schon irgendein Tool gibt um es zu convertieren. Das ist aber jetzt nicht mein Problem. Erstmal möchte ich die Sache mal umsetzen können.
Ich kann das ganze danach immer noch mit einem ganz anderen Tool aufsetzen oder portieren.
Kommt darauf an, welchem Zweck der Prototyp dienen soll. Manchmal reichen Wireframes, manchmal kannst Du auch mit Screenshots arbeiten. Wenns funktionaler sein soll, geht auf die Schnelle auch HTML und JavaScript. Es gibt auch Online-Tools, mit denen man einen App simulieren kann, um dem Anwender zu zeigen: so in etwa wird es am Ende funktionieren bzw. aussehen.
Also wenn multi Platform, dann ist Flutter eine Idee. Aber man könnte auch Xamarin nehmen - da hast du für Xamarin Forms wohl auch einen Designer im Visual Studio, so dass Du da einfach die UI zusammen klickern kannst.
Oder man greift zu einem Low Code / No Code Ansatz. LiveCode habe ich mir mal angesehen: https://livecode.com/
Da sind so Applikationen sehr einfach umzusetzen - aber das Tooling kostet entsprechend Geld. (Das kommerzielle gibt es regelmäßig als Angebot … aber auch da kostet es immer noch einiges!)
Jetzt das ganze mit Java aufzubauen mittels den Tools die dort angeboten werden denke ist keine gute Idee.
Jetzt gibt es so neue Tools wie "Flutter".
Was würdet ihr mir empfehlen wenn ich eine gaaaaaanz einfache App erstellen möchte wo dir Fragen gestellt werden und dann am Ende eine Auswertung kommt anhand deiner Antworten!?
Also wenn du wirklich jeglichen Aufwand vermeiden möchtest und Java + passende Frameworks und/oder Tools für gänzlich ungeeignet hältst (warum eigentlich?), dann gäbe es so etwas wie Google Forms oder vergleichbare Fertiglösungen.
So Leute, ich hatte erst heute Zeit es erstmal langsam anzugehen.
Das ganze bisher von mir erwähnte dauert extreme lange zum installieren.
Hab jetzt erstmal Eclipse und OpenJDK installiert und bin mal am basteln von Comboboxen.
Ist das die beste Methode jetzt mit Java in Eclipse mir eine Umfrage zu basteln!?
Also ich würde gerne so 6 bis 8 Comboboxen basteln. Eine kurze Überschrift oder Text daneben hinstellen, damit die Leute wissen was sie auswählen sollen und dann im actionPerformormed (ActionEvent e) schreibe ich dann meine Logik rein.
DENN (unbedingt WICHTIG):
Ich muss bei Frage1: Auswahl 1 dem Wert A eine +1 zurechnen, bei Auswahl B aber dem Wert B eine +1,
und das kann dann bei Frage2 so aussehen, dass bei Auswahl 1 der Wert B eine +2 bekommt.
Am Ende brauchen ich eine Auswertung die sagt welche Werte die meisten Punkte haben und je nachdem einen bestimmten Text auswirft.
Comboboxen find ich erstmal am einfachsten und übersichtlicher als JFrame.
Oder kennt ihr was besseres?
Außerdem: Wie positioniere ich jetzt ein Textfeld neben einer Combox?
Also ich würde es gerne so anordnen:
(Textfeld) [Combobox] (Textfeld) [Combobox]
(Textfeld) [Combobox] (Textfeld) [Combobox]
(Textfeld) [Combobox] (Textfeld) [Combobox]
Zusatz: Am Ende möchte ich noch folgende Funktion hinzufügen:
Je nach Auswahl soll dann daneben ein Bild eingeblendet werden wo jede Auswahl ein anderes hat.
Blödes Beispiel: Ich wähle die Auswahl "Vogel" und dann erscheint daneben das Bild eines Vogels!
Ich muss ja zugeben, mir ist immer noch nicht klar, was du eigentlich genau für welchen Anwendungszweck erstellen möchtest. Soll die Anwendung denn auf mehreren Geräten, von mehreren verschiedenen Personen benutzbar sein können? Oder nur von einer Person, an einem bestimmten Gerät?
Ist das die beste Methode jetzt mit Java in Eclipse mir eine Umfrage zu basteln!?
Also ich würde gerne so 6 bis 8 Comboboxen basteln. Eine kurze Überschrift oder Text daneben hinstellen, damit die Leute wissen was sie auswählen sollen und dann im actionPerformormed (ActionEvent e) schreibe ich dann meine Logik rein.
Eclipse ist erstmal ja nur eine IDE. Und natürlich kannst du damit Java Anwendungen erstellen. Falls mehrere Benutzer die Anwendung benutzen sollen, möchtest du doch aber nicht, dass sich jeder erstmal Eclipse installieren muss, um die Anwendung bedienen zu können?? Ziel sollte also dann eine verteilbare, eigenständig laufende Applikation sein, richtig? Diese kannst du mit Eclipse eben auch erstellen.
ComboBoxen kann man ja nicht einfach so ins Nichts "malen". Die werden ja idealerweise in einem Container platziert, der ja wiederum auf einem JFrame gezeichnet/dargestellt wird.
Es gibt auch in Eclipse ein Plugin um einen Scenebuilder für Swing zu bekommen, damit kannst du deine GUI mal provisorisch zusammen stöpseln
netbeans hat den scene builder für swing automatisch installiert
DENN (unbedingt WICHTIG):
Ich muss bei Frage1: Auswahl 1 dem Wert A eine +1 zurechnen, bei Auswahl B aber dem Wert B eine +1,
und das kann dann bei Frage2 so aussehen, dass bei Auswahl 1 der Wert B eine +2 bekommt.
Am Ende brauchen ich eine Auswertung die sagt welche Werte die meisten Punkte haben und je nachdem einen bestimmten Text auswirft.
Comboboxen find ich erstmal am einfachsten und übersichtlicher als JFrame.
Oder kennt ihr was besseres?
Das ist Anwendungslogik, die idealerweise überhaupt nichts mit dem verwendeten Framework zu tun haben sollte. Wenn man nur einen Prototypen "zum Herzeigen" basteln will, kann man das natürlich vernachlässigen und baut Fragen und Bewertung halt fest ein.
Andererseits kann man die Sache auch gleich halbwegs vernünftig modellieren, dann fliegt halt nach dem Prototyping nur das UI wieder raus und die Logik kann weiterverwendet werden.
Ich muss ja zugeben, mir ist immer noch nicht klar, was du eigentlich genau für welchen Anwendungszweck erstellen möchtest. Soll die Anwendung denn auf mehreren Geräten, von mehreren verschiedenen Personen benutzbar sein können? Oder nur von einer Person, an einem bestimmten Gerät?
Erstmal soll es, so wie ich es mir vorstelle, laufen. Das ist Prio.1
Und es soll nicht 100 Stunden dauern. Sondern so einfach und rasch wie möglich umsetzbar sein, laut meinen Angaben.
Danach kann ich mir immer noch Gedanken machen wo und wie es portiert und verbreitet werden soll.
Eclipse ist erstmal ja nur eine IDE. Und natürlich kannst du damit Java Anwendungen erstellen. Falls mehrere Benutzer die Anwendung benutzen sollen, möchtest du doch aber nicht, dass sich jeder erstmal Eclipse installieren muss, um die Anwendung bedienen zu können?? Ziel sollte also dann eine verteilbare, eigenständig laufende Applikation sein, richtig? Diese kannst du mit Eclipse eben auch erstellen.
ComboBoxen kann man ja nicht einfach so ins Nichts "malen". Die werden ja idealerweise in einem Container platziert, der ja wiederum auf einem JFrame gezeichnet/dargestellt wird.
Zum positionieren gibt es unter Swing ja die sogenannten Layout Container. In deinem Falle könnte sich ein Blick auf das GridLayout lohnen.
Es gibt auch in Eclipse ein Plugin um einen Scenebuilder für Swing zu bekommen, damit kannst du deine GUI mal provisorisch zusammen stöpseln
netbeans hat den scene builder für swing automatisch installiert
Danke, schaue ich mir morgen gleich an. Ich hab jetzt Eclipse am laufen. Würdest du dann empfehlen auf Netbeans umzusteigen!? Ich kenne das nicht und habe bisher immer nur mit Eclipse gearbeitet.
The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open source projects, including runtimes, tools and frameworks.
Danke, schaue ich mir morgen gleich an. Ich hab jetzt Eclipse am laufen. Würdest du dann empfehlen auf Netbeans umzusteigen!? Ich kenne das nicht und habe bisher immer nur mit Eclipse gearbeitet.
Das ist Anwendungslogik, die idealerweise überhaupt nichts mit dem verwendeten Framework zu tun haben sollte. Wenn man nur einen Prototypen "zum Herzeigen" basteln will, kann man das natürlich vernachlässigen und baut Fragen und Bewertung halt fest ein.
Andererseits kann man die Sache auch gleich halbwegs vernünftig modellieren, dann fliegt halt nach dem Prototyping nur das UI wieder raus und die Logik kann weiterverwendet werden.
Aber genau das ist der schwierigste Punkt gerade bei mir.
Aufgebaut hab ich mir bald einmal alles, ist halt nur viel googeln und youtube videos schauen.
Aber wie ich dann die Auswahlen aus den Comboboxen "abspeichere" und dann später als private int weitergebe ist für mich noch "keine Ahnung wie!".
Also ich habe 4 fixe Werte. Nennen wir sie einfach halber STADT,LAND,FLUSS,BUBU
und je nach Antwort soll einer dieser "integer" +1 oder +2 oder +3 erhalten.
Am Ende soll dann ein weitere methode einfach im einfachen "case" verfahren durchgehen......welcher der 4 integer den höchsten Wert hat und dann einen Text aussprucken, je nachdem.
Wie deklariere ich diese 4 Werte in der Classe und wie stelle ich sicher, dass diese Werte addiert und weiter gegeben werden je nachdem welche "Antwort" man in den unterschiedlichen comboboxen auswählt!?
Kann das wer so erklären dass es ein Laie auch kapiert bitte?
Dann halte doch eine Instanzvariable in der Haupt Klasse. Gib jedem weiteren Objekt auch die Instanz der Haupt Klasse mit so das jede Klasse darauf zugreifen kann. Auf die Variable oder den getter der Variablen.
Oder eine public Klassenvariable in der deine Punkte gesammelt werden.
Oder eine Singelton Klasse in der die Punkte gesammelt werden.
Dann halte doch eine Instanzvariable in der Haupt Klasse. Gib jedem weiteren Objekt auch die Instanz der Haupt Klasse mit so das jede Klasse darauf zugreifen kann. Auf die Variable oder den getter der Variablen.
Oder eine public Klassenvariable in der deine Punkte gesammelt werden.
Oder eine Singelton Klasse in der die Punkte gesammelt werden.
Leider bin ich etwas eingerostet und steh auf der Leitung. Bitte nich hauen wenn ihr meinen code anschaut. Alles absoluter Noob-Approach!
Und denkt euch am besten nichts bei der namensgebung, is einfach ein Prototyp. Das wird alles erst angepasst wenn das ganze mal steht.
Ich habe die Klasse MyFrame erstellt.
Java:
public class MyFrame extends JFrame implements ActionListener{
JComboBox comboBox;
JComboBox comboBox2;
private int hund=0;
private int pfau=0;
private int hahn=0;
private int adler=0;
MyFrame(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout(FlowLayout.LEADING,50,10));
String[] gesichtsform = {"Rund","Eckig","Trapez","Dreieck"};
String[] augenbrauen = {"Dick","Duenn"};
comboBox = new JComboBox(gesichtsform);
comboBox2 = new JComboBox(augenbrauen);
comboBox.addActionListener(this);
comboBox2.addActionListener(this);
comboBox.setToolTipText("Hier wählen Sie die Form des Gesichtes aus");
comboBox2.setToolTipText("Hier wählen Sie die Form der Augenbrauen aus");
weiter unten habe ich eine Methode actionPerformed:
Kann mir jemand es so erklären dass ich den Unterschied verstehe..... Wenn ich die Klassenvariablen hund,pfau,adler,hahn direkt nach
"public class MyFrame extends JFrame implements ActionListener" erstelle ODER sie erst nach "MyFrame()" deklariere.
Ich will einfach in der methode "actionPerformed" darauf zugreifen können und je nach Auswahl a,b,c,d in der combobox diese Variablen hund,pfau,hahn,adler dann ändern.
Edit: Ich muss ja nicht für jede Combobox eine eigene Methode machen, oder? Ich kann ja alles in einer realisieren!?
Also bei allen 8 comboboxen (bisher sind es nur 2) in einer Methode!?
Prinzipiell ist das doch so in Ordnung oder was geht nicht?
Die Variablen sind als Instanzvariablen definiert worden und damit sind diese in den Methoden der Instanz auch verfügbar. (Mal vom schlechten Design abgesehen, aber das ist jetzt erst einmal egal).
Hättest Du diese Variablen innerhalb des Konstruktors (nach dem MyFrame()) deklariert, dann wären es lokale Variablen im Konstruktor und nur innerhalb des Konstruktors gültig.
Dann noch ein Hinweis: Dein Vorgehen ist das, was vor Java 8 üblich war. Mit Java 8 wurden funktionale Elemente eingebaut in Java und es gibt Lambda Ausdrücke und Methodenreferenzen.
Damit entfällt das:
public class MyFrame extends JFrame implements ActionListener {
Aus Deiner Methode public void actionPerformed(ActionEvent e) {
werden zwei Methoden, mit den entsprechenden Namen, die angeben, was passiert, also etwas wie:
(Das besagt natürlich noch nicht wirklich viel - aber ich habe keine Ahnung, was Du da genau treiben willst. Daher konnte ich nur Deine Namen weiter verwenden und da stach mit hier halt nur ein comboBox2 als Bezeichner ins Auge.)
Eingebunden wird dies dann per: comboBox2.addActionListener(this::handleComboBox2);
Alternativ - da Du das ActionEvent nicht nutzt: private void handleComboBox2() {
mit comboBox2.addActionListener(e -> handleComboBox2());
Zur Erklärung:
this::handleComboBox2 wäre eine Methodenreferenz. Damit wird gesagt, welche Methode aufgerufen werden soll.
e -> handleComboBox2() ist ein sogenannter Lambda Ausdruck - oft auch als anonyme Methode bezeichnet.
The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open source projects, including runtimes, tools and frameworks.
So probiert gerade ein neues Projekt zu erstellen.
Bekomme wenn ich auf "design klicke":
Eclipse is running under 17.05, but this Java project has a 18 Java compliance level, so WindowBuilder will not be able to load classes from this project. Use a lower level of Java for the project, or run Eclipse using a newer Java version.
Ich kapier den Satz nicht. Was zum Teufel will der von mir?
Ich habe unter "Properties"->"Java Compiler" alles mögliche probiert und andere Versionen eingestellt aber die Meldung kommt immer wieder.
Prinzipiell ist das doch so in Ordnung oder was geht nicht?
Die Variablen sind als Instanzvariablen definiert worden und damit sind diese in den Methoden der Instanz auch verfügbar. (Mal vom schlechten Design abgesehen, aber das ist jetzt erst einmal egal).
Hättest Du diese Variablen innerhalb des Konstruktors (nach dem MyFrame()) deklariert, dann wären es lokale Variablen im Konstruktor und nur innerhalb des Konstruktors gültig.
Dann noch ein Hinweis: Dein Vorgehen ist das, was vor Java 8 üblich war. Mit Java 8 wurden funktionale Elemente eingebaut in Java und es gibt Lambda Ausdrücke und Methodenreferenzen.
Damit entfällt das:
public class MyFrame extends JFrame implements ActionListener {
Aus Deiner Methode public void actionPerformed(ActionEvent e) {
werden zwei Methoden, mit den entsprechenden Namen, die angeben, was passiert, also etwas wie:
(Das besagt natürlich noch nicht wirklich viel - aber ich habe keine Ahnung, was Du da genau treiben willst. Daher konnte ich nur Deine Namen weiter verwenden und da stach mit hier halt nur ein comboBox2 als Bezeichner ins Auge.)
Eingebunden wird dies dann per: comboBox2.addActionListener(this::handleComboBox2);
Alternativ - da Du das ActionEvent nicht nutzt: private void handleComboBox2() {
mit comboBox2.addActionListener(e -> handleComboBox2());
Zur Erklärung:
this::handleComboBox2 wäre eine Methodenreferenz. Damit wird gesagt, welche Methode aufgerufen werden soll.
e -> handleComboBox2() ist ein sogenannter Lambda Ausdruck - oft auch als anonyme Methode bezeichnet.
Danke für die Auffrischung. Mein Fehler war "MyFrame.hund=+1;", es gehört aber "this.hund=+1;".
Ich kenne Lambda Ausdrücke sehr wohl nur sind die für mich etwas zu "high" gerade am Anfang. Ich glaub so etwas kann ein Laie wie ich erst machen wenn er mal das Programm fertig stehen hat und dann feintuning betreibt! Aber ich werds versuchen deinem Beispiel so weit es mir möglich ist, zu folgen!
Was bedeutet das?
"Eclipse is running under 17.05, but this Java project has a 18 Java compliance level, so WindowBuilder will not be able to load classes from this project. Use a lower level of Java for the project, or run Eclipse using a newer Java version."
17.05? Ich hab keine Ahnung was das für eine Version sein soll. Eclipse ist die Version 4.25.0 und ich habe OpenJDK installiert mit der Version 19.0.1
Edit: Ich habe jetzt ein neues Projekt erstellt mit anderem JRE ausgewählt und jetzt klappt es. Keine Ahnung. Anscheinend mag der WindowBuilder openJDK nicht.
Ich habe sein Projekt so verstanden das er mehrere Bildschirmseiten mit Fragen haben will die er in Comboboxen packt.
Ich gehe mal davon aus das er nicht alle Seiten in einer Klasse machen will.
Und in der End Seite eine Auswertung machen will.
Und da braucht er die Daten aus den vorherigen Instanzvariablen.
Die ja nun privat sind und somit keinzugrif aus anderer Klasse möglich ist. Wenn die Instanz der Klasse da noch existiert.
Deshalb puplic getter und die Instanz der Datenkasse mitgeben. An die nuen Seiten Klasse Instanz.
Ich habe sein Projekt so verstanden das er mehrere Bildschirmseiten mit Fragen haben will die er in Comboboxen packt.
Ich gehe mal davon aus das er nicht alle Seiten in einer Klasse machen will.
Und in der End Seite eine Auswertung machen will.
Und da braucht er die Daten aus den vorherigen Instanzvariablen.
Die ja nun privat sind und somit keinzugrif aus anderer Klasse möglich ist. Wenn die Instanz der Klasse da noch existiert.
Deshalb puplic getter und die Instanz der Datenkasse mitgeben. An die nuen Seiten Klasse Instanz.
Ich check leider die Hälfte nicht was er schreibt!
Warum werden aus einer Methode zwei? Was meint er damit? Lambas hab ich eher genau umgekehrt in erinnerung. Sie schlucken code und machen aus 2 Zeilen eine.
Hab gerade wieder von vorne angefangen. Diesmal mit dem WindowBuilder und stehe bereits hier an:
Keine Ahnung ob das stimmt.
Wie genau füge ich den ActionListener zu den erstellten Boxen hinzu?! jetzt sehe ich den Wald vor lauter Bäumen nicht mehr. Als Laie verwirrt mich das noch mehr!
Das Problem, dass ich bei diesem Ansatz sehe, ist einfach, dass Du dann eine große Menge unstrukturiertem Code hast, bei dem Du selbst nicht mehr durchschaust und bei dem die Abhängigkeiten schlicht unsauber sind.
Derzeit hast Du zwei Controls. Bei beiden Controls setzt Du den gleichen Action Handler. Im ActionHandler hast Du dann eine Unterscheidung. Wenn es das erste Control ist, dann mache dies, beim zweiten Control mache jenes.
Du hast also:
a) Eine viel zu große Methode, die die ActionEvents verarbeitet. Dazu hat die Methode einen universellen Namen, der nichts über das aussagt, was die Methode macht.
b) in der Methode dann viel zu viel Code, der unnötig ist - halt die ganzen ifs, mit denen Du zwischen den Controls unterscheidest.
Bezüglich Deines Problems:
Java:
private void handleComboBox() {
}
ist eine Methode. Methoden kannst Du nicht in anderen Methoden schreiben sondern diese müssen in der klasse selbst stehen.
Also in etwa so:
Java:
// Hier bist Du gerade in einer Methode ...
JComboBox comboBox = new JComboBox(gesichtsform);
comboBox.setBounds(38, 41, 126, 22);
frame.getContentPane().add(comboBox);
comboBox.addActionListener(e -> handleComboBox());
// Die Methode kann gerne noch weiter gehen ....
} // Hier endet dann die Methode!
// Und nun kann die nächste Methode kommen.
private void handleComboBox() {
}
Das Problem, dass ich bei diesem Ansatz sehe, ist einfach, dass Du dann eine große Menge unstrukturiertem Code hast, bei dem Du selbst nicht mehr durchschaust und bei dem die Abhängigkeiten schlicht unsauber sind.
Derzeit hast Du zwei Controls. Bei beiden Controls setzt Du den gleichen Action Handler. Im ActionHandler hast Du dann eine Unterscheidung. Wenn es das erste Control ist, dann mache dies, beim zweiten Control mache jenes.
Du hast also:
a) Eine viel zu große Methode, die die ActionEvents verarbeitet. Dazu hat die Methode einen universellen Namen, der nichts über das aussagt, was die Methode macht.
b) in der Methode dann viel zu viel Code, der unnötig ist - halt die ganzen ifs, mit denen Du zwischen den Controls unterscheidest.
Bezüglich Deines Problems:
Java:
private void handleComboBox() {
}
ist eine Methode. Methoden kannst Du nicht in anderen Methoden schreiben sondern diese müssen in der klasse selbst stehen.
Also in etwa so:
Java:
// Hier bist Du gerade in einer Methode ...
JComboBox comboBox = new JComboBox(gesichtsform);
comboBox.setBounds(38, 41, 126, 22);
frame.getContentPane().add(comboBox);
comboBox.addActionListener(e -> handleComboBox());
// Die Methode kann gerne noch weiter gehen ....
} // Hier endet dann die Methode!
// Und nun kann die nächste Methode kommen.
private void handleComboBox() {
}
ok. Danke! Jetzt funktioniert es.
Zum Thema Controls:
Ich habe etwas überlegt und bin zur Erkenntnis gekommen ich muss es folgendermaßen umändern:
Frage1: er soll speichern welche Auswahl getroffen wurde.
Frage2: er soll speichern welche Auswahl getroffen wurde.
Frage3: usw.
usw.
Am Ende gibt es eine Liste von Text-Bausteinen die je nachdem welche Auswahlen getroffen wurden angezeigt werden.
Ein Button "Auswerten" zeigt also am Ende an:
Bei Frage1Auswahlx.Text + Frage2Auswhalx.Text + usw.
Wie sollte ich das angehen?
Soll ich eine Klasse schreiben die ALLE Texte behinaltet oder ist hier nich einfach ein Array[String] besser?
Also Frage1.Antwort1,Frage1.Anwort2,Frage2.Antwort1,ect.....
In der Main speichere ich ComboBox Auswahlen ab und am Ende mache ich beim Button "Auswerten" eine
action die einfach schaut was wurde gespeichert und sucht dann die TextBausteine aus dieser anderen Klasse oder dem Array je nachdem was ausgewählt wurde? Wenn du verstehst was ich meine.
Blöd ausgedrückt:
Wenn ich bei Combbox1 "vogel" bei Combobox2 "hund" und bei Combobox3 "ameise" ausgewählt habe dann soll er am Ende auspucken:
"es fliegt" "es bellt" "es ist ein Insekt". So irgendwie.
Für einen inhaltslosen Prototypen würde ich statt Swing, JavaFX mit dem Scenebuilder nehmen. Für meinen Geschmack, ist der Scenebuilder ein super Tool zum erstellen von GUI. Wenn du eine App für Android bauen willst, dann nimm AndroidStudio, allein das Monitoring der Performance und DB ist sehr praktisch.
Bei Flutter bin ich noch sehr skeptisch, weil es von Google kommt. Da warte ich jeden Tag darauf, dass sie das wieder beerdigen.
es gibt den Scene builder auch für Swing..wurde auch schon verlinkt
javafx ist halt einfacher in manchen stellen wie zb man muss sich nicht ums zeichnen kümmern, und anderen schnick schnack aber das sollte ihn nicht davon abhalten swing herzunehmen
Der WindowBuilder ist nicht vergleichbar. Swing fehlen einfach zu viele Dinge. Bindings ist das Erste, das mir da direkt einfällt. Wobei das in JavaFX auch nur halbherzig ist - so sind in fxml keine bidirektionale Bindings möglich. Da ist z.B. WPF im .Net Bereich deutlich weiter/besser. (Aber wie war das mit toten Pferden? Da wird nicht wirklich viel weiter entwickelt.)
Aber das ist auch egal - egal mit welchem Tooling er arbeiten wird: Es wird schon problematisch, da er sich über das Datenmodell keine Gedanken gemacht hat. Zusammen mit der Generierung von schlechtem Code wird das dann insgesamt ein sehr problematisches Unterfangen. Diesen RAD Ansatz mit "UI first" ist aus meiner Sicht kein zielführender Ansatz.
Aber das ist eine kritische Sicht, die dem TE nicht wirklich weiter hilft und daher habe ich mich diesbezüglich auch bisher zurück gehalten.
was ich halt in meinen lausigen jahren gelernt habe ist, dass es wichtig ist scheibchen aus seiner anwendung raus schneiden zu können ohne alles zu zerstören.
einfach mal bei der FXML oder YAML oder was auch sonst auf löschen klicken und nichts blinkt rot auf.. das ist doch ein träumchen
Ich baue auch grundsätzlich erst das Modell zum Leidwesen des Vertriebs (was übrigens ein großer Vorteil ist, denn wenn Vertrieb etwas sieht, das nach Anwendung aussieht, dann ist das praktisch fertig verkaufbare Software).
Man kann durchaus was frickeln, aber dann muss man sich mit Abstrichen begnügen und je mehr man im Prototypen Logik haben will, desto weniger macht das Sinn.
Heißt: ich kann mir vorstellen, sowas mal eben zusammenzuklicken und mit festen Werten zu versehen, eine Fake-Auswertung dazu und gut ists. Wenn ich aber echte Fragen stellen will, echte Auswertung haben will: warum soll ich dann was schreiben, was ich hinterher in die Tonne klopfe?!? Zumal es dann anfängt, kompliziert zu werden, wenn man das im UI macht. Ein UI an ein Model anbinden, ist dagegen kein Problem.
Ich möchte jetzt Bilder einfügen, zu jeder Frage ein Frame, welches dann, je nachdem was man ausgewählt ein anderes Bild anzeigt.
Also Beispiel: in Frage1 wähle ich einen "Vogel" aus und im Bild daneben erscheint dann ein Bild eines Vogels.
Welche......komponente verwende ich da? JFrame? Ich glaube für den ActionListener ist es nicht so das große Ding. Einfach bei getSelectedItem eine Zuweisung zu diesm Bild!? Muss mich da erst einlesen.
Was ich noch vorhabe ist, dass wenn man auf den Button "Auswertung" klickt. Er ein neues Fenster aufmacht und dort dann die Ergebnisse anzeigt! Habe ja jetzt alles auf einem Fenster. Denke da muss ich eine Zuweisung zu einem neuen Fenster erstellen.
Ok. Danke aber das is mir eindeutig ZU kompliziert. Ich hab nicht immer Zeit für das Projekt und nach ein paar Tagen muss ich mich erst immer wieder in den code einlesen. Solche lamba-ausdrücke machen es code-mäßig garantiert schlanker und schöner aber mein Hirn sagt da:"WTF".
Was ich noch vorhabe ist, dass wenn man auf den Button "Auswertung" klickt. Er ein neues Fenster aufmacht und dort dann die Ergebnisse anzeigt! Habe ja jetzt alles auf einem Fenster. Denke da muss ich eine Zuweisung zu einem neuen Fenster erstellen.
Hab jetzt einfach paar Bilder hinzugefügt und beim AktionListener einfach einen case-switch geadded der je nach Auswahl das richtige Bild anzeigt.
Jetzt gehts daran den Button zu machen dass er dann das Ergebnis auf einer neuen Seite aufmacht.
Eine Frage ist noch immer offen oder es tut mir leid falls ich es überlesen habe:
"Wie soll ich die Antworten am besten abspeichern? Hab ca 2 Zeilen pro Antwort (string).
Das heißt wenn man 3 Fragen auswählt kommen am Ende ca. 6 Zeilen text zum vorschein.
Reicht ein Array aus String für das am besten?
Hab jetzt einfach paar Bilder hinzugefügt und beim AktionListener einfach einen case-switch geadded der je nach Auswahl das richtige Bild anzeigt.
Jetzt gehts daran den Button zu machen dass er dann das Ergebnis auf einer neuen Seite aufmacht.
Eine Frage ist noch immer offen oder es tut mir leid falls ich es überlesen habe:
"Wie soll ich die Antworten am besten abspeichern? Hab ca 2 Zeilen pro Antwort (string).
Das heißt wenn man 3 Fragen auswählt kommen am Ende ca. 6 Zeilen text zum vorschein.
Reicht ein Array aus String für das am besten?
würd ein "Interface" oder eine abstrakte Klasse auch eine Lösung sein um nicht alles in der main zu haben!? Mache einfach ein Interface mit allen Text-Bausteinen und kann die dann mit einer Methode aufrufen.
Nein, du solltest eine saubere Modellierung der Daten haben. Halt das, was schon mehrfach angesprochen wurde.
Du frickelst Dir da gerade etwas zurecht, das mit jeder Frickelei Dir mehr um die Ohren fliegen wird. Anpassungen werden die Hölle werden, da Du halt absolut keine Struktur im Code hast und Zuständigkeiten nicht getrennt sind.
Selbst wenn Du da eine erste lauffähige Version irgendwie hin bekommen solltest: Das wird viel Kraft und Nerven kosten und das Ergebnis ist - sorry für die harten Worte - ein Haufen Scheiße. Wie sehr diese Worte zutreffen werden, wirst Du dann auch fühlen: Jeder Änderungswunsch, der an Dich heran getragen wird, wird sich halt genau so anfühlen: Der Tritt in einen Haufen Scheiße. (Dabei ist dann maximal die Frage nach der Fußbekleidung: Wirst Du evtl. Gummistiefel anhaben oder darfst Du es mit Sandalen machen!)
Es steht Dir frei, das genau so zu machen. Es gibt viele Leute, die sowas machen (mit entsprechender Bekleidung). Aber das ist nicht das, was ich machen will und daher meine (aus deiner Sicht bestimmt sehr negative) Meinung.
So Projekte fange ich genau anders herum an:
Ich betrachte die Daten
Ich betrachte die notwendigen Operationen auf den Daten
==> Dann implementiere ich genau das.
Zur gleichen Zeit darf gerne ein UI/UX Designer sich mit dem Kunden unterhalten. Der wird da auch tolle Screens entwerfen und dem Kunden zeigen. Die Funktionalität mit dem Kunden durchspielen. Das macht der aber nicht mit Java! Der hat dazu brauchbare Tools. (JavaFX mit Scenebuilder könnte man sich vorstellen - da hat man eine Deklarative UI! Aber da macht man dann nur die FXML Dateien. Da wird kein Programm drumherum gebaut. )
Dann kommt irgendwann der Punkt: ich habe die Daten, da gibt es ein Model des UIs -> Da kann man dann den Code für die UI schreiben. Aber wirklich erst da.
Du hast da jetzt ein tolles Dach gebaut und fragst Dich, die Du da nun Wände drunter bekommst. Ok, kann man bestimmt anheben und abstützen um dann die Mauern zu bauen. Aber spätestens dann wird es schwer mit Grundplatte oder den Arbeiten, um den Keller auszuheben ....
Nein, du solltest eine saubere Modellierung der Daten haben. Halt das, was schon mehrfach angesprochen wurde.
Du frickelst Dir da gerade etwas zurecht, das mit jeder Frickelei Dir mehr um die Ohren fliegen wird. Anpassungen werden die Hölle werden, da Du halt absolut keine Struktur im Code hast und Zuständigkeiten nicht getrennt sind.
Selbst wenn Du da eine erste lauffähige Version irgendwie hin bekommen solltest: Das wird viel Kraft und Nerven kosten und das Ergebnis ist - sorry für die harten Worte - ein Haufen Scheiße. Wie sehr diese Worte zutreffen werden, wirst Du dann auch fühlen: Jeder Änderungswunsch, der an Dich heran getragen wird, wird sich halt genau so anfühlen: Der Tritt in einen Haufen Scheiße. (Dabei ist dann maximal die Frage nach der Fußbekleidung: Wirst Du evtl. Gummistiefel anhaben oder darfst Du es mit Sandalen machen!)
Es steht Dir frei, das genau so zu machen. Es gibt viele Leute, die sowas machen (mit entsprechender Bekleidung). Aber das ist nicht das, was ich machen will und daher meine (aus deiner Sicht bestimmt sehr negative) Meinung.
So Projekte fange ich genau anders herum an:
Ich betrachte die Daten
Ich betrachte die notwendigen Operationen auf den Daten
==> Dann implementiere ich genau das.
Zur gleichen Zeit darf gerne ein UI/UX Designer sich mit dem Kunden unterhalten. Der wird da auch tolle Screens entwerfen und dem Kunden zeigen. Die Funktionalität mit dem Kunden durchspielen. Das macht der aber nicht mit Java! Der hat dazu brauchbare Tools. (JavaFX mit Scenebuilder könnte man sich vorstellen - da hat man eine Deklarative UI! Aber da macht man dann nur die FXML Dateien. Da wird kein Programm drumherum gebaut. )
Dann kommt irgendwann der Punkt: ich habe die Daten, da gibt es ein Model des UIs -> Da kann man dann den Code für die UI schreiben. Aber wirklich erst da.
Du hast da jetzt ein tolles Dach gebaut und fragst Dich, die Du da nun Wände drunter bekommst. Ok, kann man bestimmt anheben und abstützen um dann die Mauern zu bauen. Aber spätestens dann wird es schwer mit Grundplatte oder den Arbeiten, um den Keller auszuheben ....
Du sollst Dir erst einmal ein Datenmodell überlegen. Das habe ich mir jetzt nicht aus dem Thread heraus gesucht. Aber da geht es halt schlicht darum. alles zu identifizieren, womit Du arbeitest und was Du damit machst.
Du hast dann Fragen. Zu den Fragen gibt es dann Auswahlmöglichkeiten, ein Bild und irgend einen Text. Antworten sind dann Bild und Text.
Dann hast Du Bildschirmseiten. Diese haben eine oder mehrere Fragen, jede Frage hat bereits eine Auswahl. Es gibt evtl. einen Titel und eine Beschreibung. Oder noch ein Bild.
Dann hast Du eine Sammlung von Bildschirmseiten. Da gibt es evtl. eine aktuelle Seite.
Das wäre dann ggf. eine Datenstruktur. Da gibt es dann diverse Operationen:
Man könnte die Seite wechseln (vor/zurück), evtl. ein Check, ob es Seite vorher oder nachher gibt.
Man kann auf der Bildschirmseite bei einer Frage eine Antwort auswählen.
Man kann Daten einlesen, ggf. auch schreiben.
Das ist dann etwas, das man als Klassen schreiben kann.
Dann kann eine Applikation einfach eine Sammlung von Bildschirmseite laden und dann eine Instanz eines Fensters erzeugen, das die aktuelle Bildschirmseite anzeigt und so.
Verzeih, das ist wirklich nicht böse gemeint, und garantiert will ich dich nicht ärgern!
Aber meine herangehensweise ist ähnlich, wie die der von anderen hier schon mehrfach genannten. Ich modelliere erstmal so genau wie nötig und mir möglich, welche Daten und Operationen auf diese Daten ich wohl benötigen werden, um meine Problemstellung lösbar zu machen.
Die definierten Daten und Operationen packe ich dann in Klassen, schaue wie ich das Design vereinfachen kann (Interfaces? Mir bekannte Entwurfsmuster?.
Daraus baue ich deinen Prototyp der erst mal einfach nur in der Konsole läuft. Buttons, Combo- oder doch CheckBoxen, Bilder/Musik/Themes etc. all das ist total irrelavant in dieser Phase für mich.
Wenn der Prototyp das macht was ich möchte, überlege ich wie ein GUI dazu aussehen könnte, um ein Anwenderfreundliches Ergebnis zu erhalten.
Dürft mir echt nicht böse sein aber naja so komme ich leider echt nicht weiter. Eure Antworten sind noch immer sehr grob, undetailiert und schwammig. Nichts wofür ich hier im Forum bin. Also da ist eigentlich nichts dabei was ich wissen wollte oder gefragt habe. Also nicht böse sein!
Ich bin übrigens drauf gekommen ich muss das ganze sowieso neu in Android Studio aufziehen weil mir Eclipse da einfach nicht die Möglichkeiten bietet die ich als nächsten Schritt brauche. Soweit bin ich auch zu dem Ergebnis gekommen zu dem ich wollte. Nur hat sich meine Idee durch das testen geändert. Das war viel viel wichtiger als sich irgendein unsinniges Datenmodel zu überlegen was echt nicht böse gemeint ist aber is halt so wie jemanden Salz anzubieten der gerade am verdursten ist.
Dir ist keiner böse, das Forum ist in erster Linie Hilfe zur Selbsthilfe. Die Antworten, gerade von @KonradN, sind doch schon sehr präzise und detailliert. Das Problem scheint eher zu sein, dass Du damit nichts anfangen kannst. Problematisch ist auch, dass Du einerseits von Prototypen schreibst, andererseits aber doch alles funktionsfähig umgesetzt haben willst. Das passt nicht wirklich zusammen. Vielleicht willst Du ein MVP (minimum viable product), also eine erste brauchbare Version.
Das Hauptproblem bei Anfängern ist, dass sie immer versuchen, ein GUI zu bauen und dieses GUI rückt dann in das Zentrum aller Überlegungen. Warum ist das problematisch? Weil in 99,9 % keine (halbwegs saubere) Trennung zwischen GUI und dem Kern der Anwendung erfolgt. Zustand und Logik wird einfach in die GUI-Klassen geklatscht und dann wirds richtig hässlich. Oft geht das so weit, dass die Buttonbeschriftung als Speicher verwendet wird.
Das kann funktionieren, für Dinge, die man einmal schreibt und dann nie wieder anrührt bzw. hinterher in die Tonne tritt. Ein einfaches TicTacToe etc. aber selbst da wird der Code oft ekelhaft und sieht dann z. B. so aus, um den Gewinner zu ermitteln:
Java:
if (buttons[0][0].getText().equals("X") && buttons[0][1].getText().equals("X") && buttons[0][1].getText().equals("X")) {
label.setText("Spieler 1 hat gewonnen!");
} else if (buttons[1][0].getText().equals("X") && buttons[1][1].getText().equals("X") && buttons[1][1].getText().equals("X")) {
label.setText("Spieler 1 hat gewonnen!");
}
// das für alle Zeilen, Spalten und Diagonalen
// und den Spaß noch für Spieler 2
Natürlich kann in den Blöcken noch mehr stehen wie beispielsweise Buttons aktivieren/deaktivieren, irgendwie muss man ja den Game-Over-Zustand unterbringen...
Mal abgesehen davon, dass man sich dort ständig den Text holen und mit equals vergleichen muss: wenn ich auf den Buttons morgen fancy Bilder haben will? Schmeiß ich die komplette Anwendung weg, weil nix mehr funktioniert. Super Ansatz.
Ziel ist auch nicht ein "Datenmodell", sondern die Modellierung der Anwendung (ohne UI) mit Klassen bzw. Objekten. Das Datenmodell ist ein Ausgangspunkt hierfür.
Warum ohne UI? Weil dieses für die Anwendung relativ uninteressant ist (wenn man mal vom Aufwand absieht), da es lediglich die Schnittstelle zwischen dem Anwender und der eigentlichen Anwendung darstellt, in der die Musik spielt.
Lies Dir nochmal #41 durch. Das ist doch ein schöner, generischer Ansatz.
Dir ist keiner böse, das Forum ist in erster Linie Hilfe zur Selbsthilfe. Die Antworten, gerade von @KonradN, sind doch schon sehr präzise und detailliert. Das Problem scheint eher zu sein, dass Du damit nichts anfangen kannst. Problematisch ist auch, dass Du einerseits von Prototypen schreibst, andererseits aber doch alles funktionsfähig umgesetzt haben willst. Das passt nicht wirklich zusammen. Vielleicht willst Du ein MVP (minimum viable product), also eine erste brauchbare Version.
Das Hauptproblem bei Anfängern ist, dass sie immer versuchen, ein GUI zu bauen und dieses GUI rückt dann in das Zentrum aller Überlegungen. Warum ist das problematisch? Weil in 99,9 % keine (halbwegs saubere) Trennung zwischen GUI und dem Kern der Anwendung erfolgt. Zustand und Logik wird einfach in die GUI-Klassen geklatscht und dann wirds richtig hässlich. Oft geht das so weit, dass die Buttonbeschriftung als Speicher verwendet wird.
Das kann funktionieren, für Dinge, die man einmal schreibt und dann nie wieder anrührt bzw. hinterher in die Tonne tritt. Ein einfaches TicTacToe etc. aber selbst da wird der Code oft ekelhaft und sieht dann z. B. so aus, um den Gewinner zu ermitteln:
Java:
if (buttons[0][0].getText().equals("X") && buttons[0][1].getText().equals("X") && buttons[0][1].getText().equals("X")) {
label.setText("Spieler 1 hat gewonnen!");
} else if (buttons[1][0].getText().equals("X") && buttons[1][1].getText().equals("X") && buttons[1][1].getText().equals("X")) {
label.setText("Spieler 1 hat gewonnen!");
}
// das für alle Zeilen, Spalten und Diagonalen
// und den Spaß noch für Spieler 2
Natürlich kann in den Blöcken noch mehr stehen wie beispielsweise Buttons aktivieren/deaktivieren, irgendwie muss man ja den Game-Over-Zustand unterbringen...
Mal abgesehen davon, dass man sich dort ständig den Text holen und mit equals vergleichen muss: wenn ich auf den Buttons morgen fancy Bilder haben will? Schmeiß ich die komplette Anwendung weg, weil nix mehr funktioniert. Super Ansatz.
Ziel ist auch nicht ein "Datenmodell", sondern die Modellierung der Anwendung (ohne UI) mit Klassen bzw. Objekten. Das Datenmodell ist ein Ausgangspunkt hierfür.
Warum ohne UI? Weil dieses für die Anwendung relativ uninteressant ist (wenn man mal vom Aufwand absieht), da es lediglich die Schnittstelle zwischen dem Anwender und der eigentlichen Anwendung darstellt, in der die Musik spielt.
Lies Dir nochmal #41 durch. Das ist doch ein schöner, generischer Ansatz.
Ich verstehe warum es dir und den anderen geht und ich schätze den gut gemeinten Gedanken dahinter sehr, aber es geht meiner Meinung nach absolut am Thema und das was ich gerade brauche total vorbei.
Klingt mir alles eher nach "den Teufel an die Wand malen" wo noch keiner ist und jemanden seine subjektiven "schlechten Erfahrungen" aufdrängen obwohl die gar nicht vorhanden sind oder weiterhelfen zu diesem Kontext.
Das ganze geht eher schon in das philosophische: mach dir vorher Gedanken und plane weil es wird dieses und jenes passieren vs. Ich muss erstmal nen Prototypen machen damit ich erstmal weiß was ich planen muss.
Also nicht bös gemeint aber da fängt man an sinnlos und endlos aneinander vorbei zu reden und der eine will das der andere etwas macht was nicht Ziel oder gefragt ist weil man von sich auf andere schließt.
Bin wie gesagt Laie und das ganze war nur um ganz schnell eine Idee umzusetzen.
Ich meine das sagt ja schon der Titel..."schnell".
Da is nix mit planen und sich Gedanken machen und mal daran gedacht, vielleicht müssen Anfänger wirklich mal diesen Fehler machen damit sie ihn auch verstehen und daraus lernen können?!
Ich meine ihr wollt schon vorab Probleme abfangen obwohl ihr noch nicht mal wisst wie weit das ganze hier gehen wird.
Aber trotzdem danke für die Hinweise.
Wenn du für Android arbeiten willst. Wird das Prinzip Datenmodel noch wichtiger.
Denn hier ist jede Bildschirm Seite eine eigene Klasse eine Activity.
Activitys sind abgeschlosse Einheiten. Du kannst nicht einfach auf Daten der ersten Activity von der zweiten zugreifen. Ja man kann einer Activity parameter beim Start mitgeben.
In Android wird das MVVM pattern realisiert.
Zu Zeiten wo es das Viewmodel noch nicht gab wurde offt Singelton eingesetzt. Um Daten unabhängig von der View zur Verfügung zu haben.
Ps es geht auch nicht soeinfach der neuen Activity eine Referenz der alten zuübergeben so wie du das von Desktop Java gewohnt bist.
Denn die neue Bildschirmseiten wird hier mit einen Intent an das BS gestartet. Das ist dann fast wie ein neues Programm starten.
Deshalb Datenmodel um unter den Activitys Daten auszutauschen.
würd ein "Interface" oder eine abstrakte Klasse auch eine Lösung sein um nicht alles in der main zu haben!? Mache einfach ein Interface mit allen Text-Bausteinen und kann die dann mit einer Methode aufrufen.
Und jetzt kommst Du daher und sagst uns, dass es Dir darum nicht geht? Dass es Dir egal ist?
Du hast angedeutet, dass Du Deinen Code auftrennen willst. Und da habe ich einen klaren und einfachen Ansatz aufgezeigt. Statt denn sofort kategorisch abzulehnen hättest Du den evtl. etwas ausprobiert. Denn das ist kein Gegensatz zu "um ganz schnell eine Idee umzusetzen." sondern lediglich ein Ansatz, der das auch unterstützt.
Dann mach das doch. Niemand hier hält Dich ab! Aber wenn Du Fragen stellst, dann bekommst Du von uns Antworten. Wenn die Antworten nicht das sind, was Du gemeint hast, dann konkretisiere die Fragen. Aber das jetzt hier ist einfach nur mangelhaft und nimmt einem jede Lust, sich mit Dir auseinander zu setzen.
Sorry, aber Dir ist bewusst, dass Du eine Frage gestellt hast, bei der es um das "Design" geht:
Und jetzt kommst Du daher und sagst uns, dass es Dir darum nicht geht? Dass es Dir egal ist?
Du hast angedeutet, dass Du Deinen Code auftrennen willst. Und da habe ich einen klaren und einfachen Ansatz aufgezeigt. Statt denn sofort kategorisch abzulehnen hättest Du den evtl. etwas ausprobiert. Denn das ist kein Gegensatz zu "um ganz schnell eine Idee umzusetzen." sondern lediglich ein Ansatz, der das auch unterstützt.
Dan biete nächstes mal einfach zwei Optionen an: "mache es entweder so wie ich es vorschlage und ich glaube das es richtig ist oder wenn du es auf deine komische "Art und Weise" machen willst, dann nehme (nur als Beispiel) "ein Interface".
Nur so als Tipp.
Dann mach das doch. Niemand hier hält Dich ab! Aber wenn Du Fragen stellst, dann bekommst Du von uns Antworten. Wenn die Antworten nicht das sind, was Du gemeint hast, dann konkretisiere die Fragen. Aber das jetzt hier ist einfach nur mangelhaft und nimmt einem jede Lust, sich mit Dir auseinander zu setzen.
Genau, geht mir genauso! Denn wir können jetzt hier noch Tagelang herumdiskutieren wie was und worum und wer noch mehr recht hat!
Bringt alles nix. Alles Off-Topic bzw. nichts was mir jetzt konkret und vor allem SCHNELL weiterhilft oder was ich gefragt habe.
Das Problem was ich hier sehe ist, ihr denkt schon 10 Schritte voraus als Profis, ich muss aber erstmal schritte 2,3,4,5 machen.
Wie gesagt, es bringt nix hier zu diskutieren. Dazu sind andere Topics gut.
Dan biete nächstes mal einfach zwei Optionen an: "mache es entweder so wie ich es vorschlage und ich glaube das es richtig ist oder wenn du es auf deine komische "Art und Weise" machen willst, dann nehme (nur als Beispiel) "ein Interface".
Nur so als Tipp.