Inhalt aus TextField in Attribut einer Instanz schreiben

Tintenfisch

Bekanntes Mitglied
Hey,
ich habe in JavaFX ein ActionEvent, welches über einen Button, einen in ein Textfeld geschriebenen Inhalt in einer Variable einer Instanz schreiben soll. Die Instanz wird ebenso vorher über eine ComboBox abgefragt. Nun, den Text bekomme ich in eine Variable, aber der Zugriff auf die Instanz, über die Angabe aus der ComboBox gelingt nicht. Die Items der ComboBox sind mit den Namen der Instanzen (besser gesagt mit den Namen aus einem Attribut dieser), belegt. Hier liegt glaube ich auch das Problem. Ist es Möglich von dem Inhalt eines Attributes einer Klasse, auf die dazugehörige Instanz zu schließen, oder ist vielleicht der ganze Ansatz nicht das Wahre?



Java:
sendEntry.setOnAction(new EventHandler<ActionEvent>() {

                @Override

                public void handle(ActionEvent arg0) {

                    Object selectedItem = chooseUser.getSelectionModel().getSelectedItem(); // Der Name der Instanz (aus Attribut)

                    String tempEntry = entryTextField.getText();  // Text aus TextField

                }
            });
 

Tintenfisch

Bekanntes Mitglied
So ich habe noch eine ganze Weile herumprobiert, aber leider funktioniert das ganze noch nicht so wirklich. An sich soll nur:
der Wert aus der ComboBox gelesen und abgeglichen werden,
der passende Index der "dateListe" festgestellt werden, an welche das im DatePicker gewählte Datum vorkommt
und dann den Inhalt des Textfeldes zum selben Index im "entry" (ArrayList) geschrieben werden.
Wäre echt super, wenn dort jemand Hilfestellung geben könnte :)

Java:
    sendEntry.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent arg0) {
                    LocalDate tempDate = datePickerEntryField.getValue();
                    
                    if (chooseUser.getValue().equals(user1.getName())) {
                        for (int i = 0; dateList().get(i).equals(tempDate); i ++) {
                            user1.getEntry()[i] = entryTextField.getText();
                            System.out.println(user1.getEntry()[i]);
                        }
                    } else if (chooseUser.getValue().equals(user2.getName())) {
                        for (int i = 0; dateList().get(i).equals(tempDate); i ++) {
                            user2.getEntry()[i] = entryTextField.getText();
                            System.out.println(user2.getEntry()[i]);
                        }
                    } else if (chooseUser.getValue().equals(user3.getName())) {
                        for (int i = 0; dateList().get(i).equals(tempDate); i ++) {
                            user3.getEntry()[i] = entryTextField.getText();
                            System.out.println(user3.getEntry()[i]);
                        }
                    }
                }   
            });
 
K

kneitzel

Gast
Also was da erst einmal auffällt:

a) dein if else if else if .... Code:
Hier wäre eine Map angebracht bei der du die User mit Namen als Key speicherst. Dann wird das ein einfaches auslesen des Elements mit dem gegebenen Namen. (Oder alternativ z.B. ein Array oder eine List mit den Usern die Du dann durchgehst ..

b) die for Schleife
Die For-Schleife ist die typische Zählschleife, aber die Bedingung kann ich nicht ganz nachvollziehen. Und wenn das letzte Element auch dem tempDate gleicht, dann hast Du ein Problem weil du dann auf das nächste Element zugreifst, das nicht existiert.
Bist Du Dir sicher, dass die schleife das macht, was Du willst? Was ist da in der dateList? Sind die ersten Elemente alle gleich? Und es gibt dann mindestens ein anderes Element?

c) Clean Code (Nice to have)
user3.getEntry()[i]
Bei sowas fällt auf: getEntry scheint ein Array zurück zu geben, also eher etwas wie getEntries - also Plural.
Und du gibst da ein Array nach außen. Das ist ein Implementierungsdetail, das ich kapseln würde. Die Ob und wie Du die Einträge speicherst geht die Außenwelt nichts an. Und wenn da etwas verändert werden soll, dann ist da eine Methode aufzurufen also sowas wie ein setEntity(int, String) um ein spezifisches Element zu setzen ...
 

Tintenfisch

Bekanntes Mitglied
Hallo @kneitzel, vielen Dank für die ausführliche Antwort.
Das mit der Map für die Namen ist eine gute Idee, sowohl auch letzteres mit der Methode, um ins Array zu schreiben, versuche ich gleich mal umzusetzen.
Leider macht dieses "Gerüst" absolut nicht das, was es soll, quasi gar nichts. In der dateList sind Daten vom Typ LocalDate, welche ein Jahr abdecken. Jedes Datum ist ein Mal enthalten und tempDate, entspricht genau eines dieser Daten.
 
K

kneitzel

Gast
Aber dann macht die Schleife doch auch keinen Sinn.

Du hast als Bedingung ja:
Java:
dateList().get(i).equals(tempDate)

Angenommen in dateList sind alle Tage vom letzten Monat. tempDate ist der 15te des Monats. Die Schleife wird so lange durchlaufen, wie der Eintrag in DateList gleich dem tempDate ist. Das ist schon beim ersten nicht der Fall, denn das ist ja der 1. und der 1. ist nicht der 15.

Bei sowas ist meine Empfehlung immer, Funktionalität zu kapseln. Erster Schritt ist dazu, weitere Methoden einzuführen. Du kannst also eine Methode haben, die ein Array von LocalDates und ein einzelnes LocalDate bekommt um dann den Index zurück zu geben. Wenn es nicht gefunden wird, dann wird von mir aus -1 zurück gegeben. Das ist eine kleine, einfache Funktionalität:
Java:
public int indexOf(LocalDate[] dateSource, LocalDate dateToFind) {
    for (int index = 0; index < dateSource.size, index++) {
        if (Objects.equals(dateSource[index], dateToFind)) return index;
    }
    
    return -1;
}
(Einfach mal im Forum zusammen geschrieben. Tippfehler bitte ignorieren)

Dann kann man das weiter verändern. Du hast da eine Liste von LocalDates mit irgendwelchen Operationen. Da bietet sich ggf. eine Klasse für an.
Oder man kann Generics nutzen. Dann ersetzt man LocalDate durch T:
Java:
public <T> int indexOf(T[] dateSource, T dateToFind) {
    for (int index = 0; index < dateSource.size, index++) {
        if (Objects.equals(dateSource[index], dateToFind)) return index;
    }
    
    return -1;
}

oder oder oder ... die Welt der Refactorings steht einem halt direkt offen. Aber das Ziel sollte immer sein, einfache kleine Codestücke zu bekommen, die sich dann auch schon fast von alleine erklären.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X TextField-Inhalt mit Button in .txt-Datei speichern Java Basics - Anfänger-Themen 16
C TextField überwachen und Inhalt verlgleichen Java Basics - Anfänger-Themen 3
G Inhalt Textfield in SQL Statement klappt nicht. Java Basics - Anfänger-Themen 2
M TextField inhalt in int umwandeln Java Basics - Anfänger-Themen 9
B TextField Inhalt auslesen Java Basics - Anfänger-Themen 5
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
I String ersetzen, der Inhalt enthält Java Basics - Anfänger-Themen 4
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
F Erstellen zweier Objekte mit dem selben Inhalt Java Basics - Anfänger-Themen 1
N den inhalt eines array per funktion ausgeben Java Basics - Anfänger-Themen 8
J Datentypen CSV to DB Leere Zellen in CSV mit Inhalt? Java Basics - Anfänger-Themen 11
H Universitätsaufgabe String inhalt Kontrollieren Java Basics - Anfänger-Themen 9
karlmasutra OOP Inhalt eines Array ausgeben lassen Java Basics - Anfänger-Themen 8
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
D Ich suche nach einer Möglickeit den Webseiten Inhalt per Java zu analysieren Automatisch Java Basics - Anfänger-Themen 3
L Namensliste mit Array zeigt nicht den gewünschten Inhalt Java Basics - Anfänger-Themen 12
F Variablen JTextField-Inhalt kann nicht mit String abgeglichen werden Java Basics - Anfänger-Themen 2
Zeekay Development Methoden Methoden Inhalt Abhängig vom Objekt? Java Basics - Anfänger-Themen 9
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
M Ordner mit Inhalt löschen Java Basics - Anfänger-Themen 7
R getrennte Objekte aus Klasse erstellen : warum Inhalt dann gleich ? Java Basics - Anfänger-Themen 2
Silvascus Inhalt eines externen Textdokuments an einen String übergeben Java Basics - Anfänger-Themen 2
F Inhalt einer Variable auswerten, die sich immer wieder ändert Java Basics - Anfänger-Themen 1
K Variablenname soll der Inhalt vom String sein Java Basics - Anfänger-Themen 2
O Zip-File Inhalt einlesen Java Basics - Anfänger-Themen 3
S Inhalt aus anderen Klassen verwenden Java Basics - Anfänger-Themen 1
H Input/Output Inhalt einer GUI in Textdatei speichern Java Basics - Anfänger-Themen 1
M Wie gebe ich den Inhalt aus? Java Basics - Anfänger-Themen 17
K Inhalt von einer csv-Datei abspeichern Java Basics - Anfänger-Themen 3
P Seite auf Inhalt prüfen Java Basics - Anfänger-Themen 2
U Inhalt von JTextfield an andere Klasse weitergeben Java Basics - Anfänger-Themen 13
Uzi21 jTable / Inhalt speichern Java Basics - Anfänger-Themen 2
T CSV auf Inhalt und Zeilen überprüfen Java Basics - Anfänger-Themen 2
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
T Aufgerufene Methode Inhalt der übergebenen Referenz Java Basics - Anfänger-Themen 5
1 den Inhalt eines Arrays umdrehen Java Basics - Anfänger-Themen 11
A Leere Datei wird ohne Inhalt geschrieben, obwohl Inhalt geschrieben wurde. Java Basics - Anfänger-Themen 4
K Inhalt in den Zwischenspeicher legen Java Basics - Anfänger-Themen 2
kaoZ Input/Output Verzeichnis Inhalt in combobox ausgeben Java Basics - Anfänger-Themen 8
G JTable: Inhalt einer selektierten Zeile speichern Java Basics - Anfänger-Themen 2
G Inhalt einer JTextArea wird nicht dargestellt Java Basics - Anfänger-Themen 8
J Inhalt in einem Text-File finden und in ein Array schreiben Java Basics - Anfänger-Themen 5
R Inhalt vom String größer oder kleiner als Java Basics - Anfänger-Themen 16
F Erste Schritte if Inhalt Java Basics - Anfänger-Themen 7
C Erste Schritte String-INhalt in TXT ausgeben Java Basics - Anfänger-Themen 7
L Split + Zeilen einer Datei mit bestimmtem Inhalt löschen Java Basics - Anfänger-Themen 23
U OOP Array vom Typ String > Inhalt ausgeben Java Basics - Anfänger-Themen 8
M Array Inhalt kopieren Java Basics - Anfänger-Themen 3
O Container Inhalt auslesen Java Basics - Anfänger-Themen 2
M Inhalt/Wert aus einer JList ablesen Java Basics - Anfänger-Themen 5
M String auf Inhalt überprüfen Java Basics - Anfänger-Themen 11
H Mehrdimensionales Array - Inhalt auf Null überprüfen Java Basics - Anfänger-Themen 5
B Datentypen Inhalt von Objekten miteinander vergleichen Java Basics - Anfänger-Themen 2
I Mehrere ArrayLists mit einer for( : ) Schleife auf Inhalt prüfen Java Basics - Anfänger-Themen 6
R Erste Schritte Objekte mit anderen Objekten als Inhalt Java Basics - Anfänger-Themen 4
F Kopieren von Ordner sammt inhalt Java Basics - Anfänger-Themen 5
I Datei einlesen, Inhalt in MAP ablegen Java Basics - Anfänger-Themen 10
E Inhalt von Option Feldern auslesen? Java Basics - Anfänger-Themen 2
Helgon Inhalt - Aktualisierungs Problem Java Basics - Anfänger-Themen 7
T Inhalt Gridlayout wird nicht angezeigt Java Basics - Anfänger-Themen 6
O Variablen Variablen Inhalt von Webseite einlesen!? Java Basics - Anfänger-Themen 2
M Inhalt eines Strings um eins hochzählen Java Basics - Anfänger-Themen 19
M String Inhalt wird überschrieben (Subklassen verwenden denselben String) Java Basics - Anfänger-Themen 13
Gossi Input/Output Datei Lesen, inhalt abfragen, speichern Java Basics - Anfänger-Themen 5
B jar Inhalt anzeigen Java Basics - Anfänger-Themen 5
H Input/Output Inhalt einer TextArea in Hex umwandeln Java Basics - Anfänger-Themen 10
D Textfile lesen/schreiben abhängig vom inhalt Java Basics - Anfänger-Themen 6
J Inhalt eines Arrays vergleichen? Java Basics - Anfänger-Themen 8
X Collections Inhalt von zwei Collections prüfen Java Basics - Anfänger-Themen 4
D jTable befüllen mit dynamischem Inhalt Java Basics - Anfänger-Themen 11
M Inhalt Textfeld prüfen Java Basics - Anfänger-Themen 4
H Java-Fenster ohne Inhalt Java Basics - Anfänger-Themen 2
D Inhalt der Spalten einer Tabelle addieren Java Basics - Anfänger-Themen 4
B Datentypen Inhalt zum Iterator wieder aufrufen? Java Basics - Anfänger-Themen 10
E Inhalt zwischen zwei String auslesen? Java Basics - Anfänger-Themen 8
S Inhalt eines Vektors ausgeben Java Basics - Anfänger-Themen 2
F String-Inhalt als Datatype-Name Java Basics - Anfänger-Themen 5
D Inhalt einer Liste auf nur ein Wert überprüfen ohne die Liste komplett zu interieren Java Basics - Anfänger-Themen 6
M Tabelle mit immer sortiertem Inhalt Java Basics - Anfänger-Themen 5
S JFileChooser - Dateinamen vorschlagen/Inhalt der Ausgabe prüfen Java Basics - Anfänger-Themen 3
J JList Inhalt nach JButton Klick aktualisieren Java Basics - Anfänger-Themen 8
C Inhalt eines Strings in JLabel ausgeben? Java Basics - Anfänger-Themen 21
L Inhalt von JEditorPane löschen Java Basics - Anfänger-Themen 4
G Inhalt Jar-Files anzeigen, incl. Methoden Java Basics - Anfänger-Themen 2
D HashMap mit Inhalt kopieren Java Basics - Anfänger-Themen 8
M [J3D] Applet-Inhalt Speichern (Manipulationen etc. ...) Java Basics - Anfänger-Themen 2
X JTable --> Spaltenbreiter am dargestellten Inhalt anpassen Java Basics - Anfänger-Themen 4
C JPanel Inhalt anpassen Java Basics - Anfänger-Themen 4
P Objekte im Array speichern und auf den Inhalt zugreifen ? Java Basics - Anfänger-Themen 4
S Inhalt von GUI-Eingabe drucken Java Basics - Anfänger-Themen 7
Sweety JTable Inhalt löschen Java Basics - Anfänger-Themen 10
O OOP FileOutputStream überschreibt ganzen inhalt der txt Java Basics - Anfänger-Themen 4
K Inhalt eines Elements aus dem Objekt Array auslesen Java Basics - Anfänger-Themen 9
B mehrer comboboxes mit dem selben inhalt befüllen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben