Variablen Variablen übertragen ohne Klassen

Diskutiere Variablen übertragen ohne Klassen im Java Basics - Anfänger-Themen Bereich.
B

ben-reisinger

Moin moin, ich bin es wieder - ich bin immer noch daran mein LoginGui mit ein paar Funktionen zu programmieren.

Also ich habe in der Datei mit dem Login Fenster geschrieben, dass sich der Benutzer mit seinem Username+ passendem Passwort einloggen kann.

(kleiner Einschub --> moment gibt es nur einen Benutzer. Wenn ich will, dass es mehrere Benutzer gibt mit einem passendem Passwort, muss ich das doch über mehrdimensionale arrays lösen oder ? --> ich habe kein Beitrag gefunden dazu)

Nachdem ich der Benutzer angemeldet hat öffnet sich ein neues Fenster und das alte schließt sich.
In dem neuen Fenster was natürlich in einer neuen Datei ist möchte ich nun auf die Variable zugreifen: Benutzername
Ich möchte sagen "Welcome " + Username" Username ist dann ja variabel.
Jedoch kann ich nicht auf die Variable Username zugreifen, weil sie in der anderen Datei ist.
Ich habe Folgendes probiert:
die Variable zu definieren mit "public" davor --> public String uName; --> geht nicht

Ich habe probiert:
Java:
public String uNameEingabeLogin = loginGUi.uNameEingabe;   // uNameEingabeLogin ist der neue String der dem uNameEingabe String aus der anderen Datei gleichgesetzt werden soll
Diesen Lösungsansatz habe ich in anderen Foren gefunden.

Folgende Frage:
Muss ich das über Methoden und Returns (oder getter und setter) lösen oder gäbe es dort noch eine einfachere Möglichkeit, denn das ist für mich noch sehr komplex.

Ich bedanke mich im Voraus schonmal.
LG
 
B

Bela B.

Im Idealfall hast du eine User-Klasse, dann ist das auch nicht mehr im Login-UI sondern halt in der entsprechenden Klasse.

Mehrere User lassen sich dann auch einfach in einer ArrayList<User> ablegen, über die lässt sich dann iterieren und auf die einzelnen User zugreifen.

Und ich würde dir raten, dir ziemlich früh das Arbeiten mit Gettern&Settern statt mit public anzugewöhnen, so sind die Daten besser gekapselt und der Zugriff auf die Klassen läuft über definierte Abläufe, in denen du dann z.B. auch Überprüfungen auf illegale Zustände einbauen kannst.
 
J

JustNobody

Nur noch einmal vom Vorgehen her:
- Du hast ein Fenster, in dem irgendwelche Daten sind.
- Nun öffnest Du ein neues Fenster. Dazu musst Du vom neuen Fenster eine Instanz erstellen und dann diese sichtbar machen.

Du hast also im Vorgehen alle Möglichkeiten, die Du so brauchst:
1. Option:
Du kannst zwischen Erstellung des Fensters und dem Sichtbar machen noch weitere Dinge tun:
Java:
NewWindow newWindow = new NewWindow();
newWindow.setSomeData(someData); // so someData in dem aktuellen Fenster bekannt ist.
newWindow.setVisible(true);
2. Option:
Du kannst bei der Erstellung natürlich noch weitere Daten direkt mit übergeben. Dazu muss das neue Fenster natürlich auch einen entsprechenden Konstruktor haben.
Java:
NewWindow newWindow = new NewWindow(someData);
newWindow.setVisible(true);
Das wäre so ein einfaches Vorgehen. Das Ganze kann man dann noch verfeinern über MVC oder MVVM undähnliche Pattern. Das Wichtige hinter all diesen Ideen ist aber, dass Daten und Funktion von der Oberfläche entkoppelt werden, so dass diese ohne Oberfläche getestet werden können.
 
B

ben-reisinger

Oh man , irgendwie bin zu blöd...
Ich verstehe da gerade einfach nicht wie ich voran komme ...
Ich probiere mir einfach mal die videos zum 10x mal anzuschauen
 
W

White_Fox

(kleiner Einschub --> moment gibt es nur einen Benutzer. Wenn ich will, dass es mehrere Benutzer gibt mit einem passendem Passwort, muss ich das doch über mehrdimensionale arrays lösen oder ? --> ich habe kein Beitrag gefunden dazu)
Wieso mehrdimensional? Wenn du nur Benutzer (=Userobjekte, so jedenfalls würde ich das machen) hast, dann reicht ein EINdimensionales Array.
Ich würde es dann auch, wenn schon, nicht in einem Array, sondern in einer ArrayList halten, das macht vieles sehr viel einfacher.

Wahrscheinlich würde ich die Benutzer, so mal ein schneller Schuß aus der Hüfte heraus, viel eher in einer HashMap halten, wobei ich als Key eine UserID benutzen würde.


Ich probiere mir einfach mal die videos zum 10x mal anzuschauen
Fernsehen macht blöde - vergiss Videos zum Lernen. Das bringt nichts.
Setz dich lieber hin und überlege dir, wie du die Aufgabe mit den von dir beherrschten Werkzeugen lösen kannst. Wenn nichts dabei ist, dann überleg dir, was dir da noch fehlen könnte. Und dann suche danach.
Aber vor allem: Denk nach, denk nach, denk nach, und dann denkst du nochmal nach. Selbst wenn kein brauchbarer Code dabei herauskommt, hast du mehr dabei mehr für deinen Lernfortschritt gemacht.

Warum ich so immens gegen Videos bin:
Ich fange mal an einer etwas ungewöhnlichen Stelle an. Filme/Videos kommen ja ursprünglich aus der Unterhaltung und waren dafür berüchtigt, das Buch als Unterhaltungsmedium zu verdrängen. Jajaja, was die Alten sagen...
Wenn du ein Buch - und sei es nur zur Unterhaltung - liest, dann ist im Hirn dabei so richtig was los. Die Information kommt ja nackt und eigentlich ziemlich unvollständig im Gehirn an. Im Buch wird über drei Sätze z.B. eine Landschaft beschrieben, das Gehirn baut daraus ganze Bilder.
Das nennt man gemeinhin Phantasie, und das hat viel mit Denken zu tun. Geh als Gedankenexperiment einfach mal den Prozess rückwärts durch. Das Bild/Film von der Geschichte, das während einer halben Buchseite vor dem geistigen Auge entsteht, wie detailliert ist es? Wieviele Buchseiten könntest du mit der Beschreibung dessen, was du dir dazu denkst, füllen?

Auch wenn Phantasie erstmal heißt, das man sich den größten Teil der Informationen selber aus den Fingern gezogen hat, wird klar: Das Hirn ist mit der Verarbeitung richtig beschäftigt. Da leistet es was, und nicht gerade wenig.

Jetzt vergleiche dazu einen Film: Die visuellen Reize machen den allergrößten Teil der Gesamtmenge aller Informationen, mit der wir unsere Umwelt wahrnehmen, aus. Ich hab da etwas von weit über 95% im Hinterkopf, hab jetzt aber auch nichts um die Zahl zu belegen. Aber: was macht das Gehirn denn während der Informationsaufnahme? Da wird nichts weiterverarbeitet oder überdacht, da wird stumpf reingedrückt. Denktätigkeit findet beim Fernsehen kaum statt.

Und wie ist das beim Lernen? Letztendlich wird dir in einem Video etwas gezeigt - ok. Aber findet mit dem, was du da siehst, irgendeine Art höherer Weiterverarbeitung statt? Eine Art Weiterdenken?

Videos sind einerseits durchaus klasse, um sehr abstrakte Zusammenhänge zu visualisieren. Wenn ich aber so darüber nachdenke, dann ist genau das vielleicht ein Fehler. Studium und Lernen funktionieren im Prinzip genauso wie Kraftsport in der Muckibude: Ohne Schweiß, Tränen und gelegentlich Blut bekommst du keine dickeren Arme und kannst nich länger schneller laufen.
Und - zumindest bei mir - bestand das Studium auch durchaus mal darin, eine Stunde oder länger vor einem Blatt Papier zu hocken und darüber nachzugrübeln, warum das so ist wie es ist und wenn ja, was wäre denn wenn...da kam meistens nichtmal eine gelöste Aufgabe bei raus, aber dafür Wissen zur Erkenntnis ausgebaut.
 
Thema: 

Variablen übertragen ohne Klassen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben