• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

ComboBox getValue() zeigt null

T

Tintenfisch

Aktives Mitglied
Hallo,
folgendes Problem, ich möchte einen Wert aus einer HashMap, mit einem Wert aus einer ComboBox auf Gleichheit prüfen. Solange das Ganze der Bedingung bei if entspricht, funktioniert es auch. Ist dies allerdings nicht der Fall und es geht somit weiter zu else if, erscheint eine Exzeption, dass der Wert der ComboBox null ist.
In beiden Fällen, sind die Bedingungen soweit identisch, nur ist bei der zuerst genannten noch ein if auf höherer Ebene vor, welches durchlaufen werden muss.
Dazu sei noch gesagt, dass sobald if erfolgreich durchlaufen worden war und man die Methode erneut anstößt, auch der Teil bei else if funktioniert.
Wäre klasse, wenn dort jemand eine Antwort drauf hätte =).

Java:
public void entryToArray () {
        String tempColorAndText;
        System.out.println("0");

        for (String key : User.getUsersHashMap().keySet()) {
        if (this.getColorsBox().getValue().equals("green")) {
            tempColorAndText = "#v";
            System.out.println("1")
            if (key.equals(this.getUsersBox().getValue())) {                         // <= funktioniert von Anfang an
                System.out.println(this.getUsersBox().getValue() + " 2");
            ((LinkedList<String>) User.getUsersHashMap().get(key).getEntry()[Date.indexOf(this.getEntryDate())]).add(tempColorAndText + this.getEntryTF().getText());
            }
        } else     if (key.equals(this.getUsersBox().getValue()) {             // <= schmeißt Exzeption 
            System.out.println(this.getUsersBox().getValue() + " 3");
            ((LinkedList<String>) User.getUsersHashMap().get(key).getEntry()[Date.indexOf(this.getEntryDate())]).add(this.getEntryTF().getText());
        } else {
            System.out.println("4");
        }}}
 
kneitzel

kneitzel

Top Contributor
Aus den Code lässt sich erst einmal aus meiner Sicht nichts ablesen. Wenn die NPE kommt, weil getUserBox() null zurück gibt, dann musst du da schauen, was da Sache ist ... Wir sehen es ja nicht ...

Maximal der Hinweis sei mir gestattet, dass dein Code extrem unleserlich ist...

((LinkedList<String>) User.getUsersHashMap().get(key).getEntry()[Date.indexOf(this.getEntryDate())]).add(this.getEntryTF().getText()); } else {
Zu der Zeile muss man sonst nichts sagen ...
 
T

Tintenfisch

Aktives Mitglied
In der HashMap sind die "User" (die Instanzen einer eigenen Klasse) gespeichert, welche sich aus der jeweils erstellten Instanz, sowie dem dazu gehörenden Namen, welcher in einem Attribut gespeichert ist, hinterlegt. Unter dem Key sind die Namen aus dem Attribut gespeichert, welche mit dem ausgewählten Item aus der ComboBox abgeglichen werden sollen (UsersBox). Die Schleife soll die einzelnen Items in der HashMap durchgehen, bis der richtige bei ist und mit dem in der ComboBox überein stimmt.
Eine Map habe ich, da ich nicht den Namen aus dem Attribut benötige, welcher abgeglichen wird, sondern den Wergebenen Namen der Instanz, da ich darauf zugreifen muss.
 
T

Tintenfisch

Aktives Mitglied
Die Lösung ist nun, dass ich in der ersten if-Abfrage noch einen Vergleich mit null gesetzt habe.
Vielleicht hat jemand dort eine Begründung für, denn es funktioniert zwar so, aber erklären kann ich es mir momentan noch nicht.

Java:
if (this.getColorsBox().getValue() != null && this.getColorsBox().getValue().equals("green")) {
 
kneitzel

kneitzel

Top Contributor
Ja, dann stimmte einfach der angegebene Ort der Exception nicht und die Exception ist an der Stelle geflogen. Wenn getValue() null ist, dann wirft der equals Aufruf natürlich eine NPE!
Evtl. kann es da auch Sinn machen, das zukünftig einfach umzustellen.
1. Möglichkeit: Der Part, der nicht null sein kann, kommt an den Anfang:
"green".equals(....)
2. Möglichkeit: Objects.equals nutzen:
Objects.equals("green", ....);
oder
Objects.equals(..., "green");

Das macht den Code dann etwas einfacher als die Prüfung auf null. Aber generell gilt: Immer gut aufpassen, wo etwas null sein kann und dies abfragen / kontrollieren!
 
N

Neumi5694

Bekanntes Mitglied
Du solltest dir vielleicht auch mal den Ablauf der Schlife anschauen (tatsächlich müsstest du komplett ohne Schleife auskommen können).
Du vergleichst so oft mit "green", wie die Map Einträge hat. Dann vergleichst du auch noch mit dem Key der Map und holst dann erst den passenden Wert raus.

Wie wär's wenn du so oder so ähnlich vorgehst ...

Java:
String selectedKey = getColorsBox().getSelectedValue()
//1. zuallererst mal null ausschließen
if (selectedKey == null) {
    //so something really important here
//2. Spezialfallbehandlung(en), warum auch immer
} else if ("green".equals(selectedKey)) {
    //...
//3. Auswerten des Map-Eintrags
} else {
    WhatevertheEntryTypeIs mapValue = ser.getUsersHashMap().get(selectedKey);
    if (mapValue != null) {
        //Auswertung von Date oder was auch immer du im Code gemacht hast.
    }
}
(Tippfehler meinerseits unterliegen dem Urheberrecht und dürfen weder kopiert noch beanstandet werden)

ps: Noch ein Letztes. Du kannst in einer Combobox auch was anderes als String speichern. Mit Strings kriegst du im Normalfall irgendwann Probleme mit der Groß-/Kleinschreibung, spätestens, wenn du mit einem Set oder einer Map arbeitest.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
P JavaFX: Verständnisproblem bei ComboBox/ChoiceBox etc. Java Basics - Anfänger-Themen 9
R Combobox-Werte in GUI anzeigen Java Basics - Anfänger-Themen 13
J Combobox füllen mit Wertausgabe von andere Klasse Java Basics - Anfänger-Themen 3
D Custom Buttons oder Custom Combobox Java Basics - Anfänger-Themen 30
G Verlassen einer ComboBox erkennen Java Basics - Anfänger-Themen 16
Mosquera Get String Array - ComboBox Java Basics - Anfänger-Themen 10
H Combobox abhängig von RadioButton Java Basics - Anfänger-Themen 4
M ComboBox bestimmte Elemente disablen/ausgrauen Java Basics - Anfänger-Themen 3
T Combobox Wert auslesen und damit weiterrechnen Java Basics - Anfänger-Themen 6
J ComboBox mittels neuer Methode befüllen Java Basics - Anfänger-Themen 3
J Interface Combobox Zustand speichern Java Basics - Anfänger-Themen 1
T Wenn Schaltjahr ist, soll Februar, einen Tag mehr haben, GUI mit combobox Java Basics - Anfänger-Themen 4
J Combobox Objekte Java Basics - Anfänger-Themen 10
kaoZ Input/Output Verzeichnis Inhalt in combobox ausgeben Java Basics - Anfänger-Themen 8
V ComboBox Ergebnisse abhängig von anderer ComboBox - Wie? Java Basics - Anfänger-Themen 7
W Hilfe bei Combobox Java Basics - Anfänger-Themen 9
W GUI Label, ComboBox Java Basics - Anfänger-Themen 4
C Combobox in Abhängigkeit von Spinner Java Basics - Anfänger-Themen 6
D Wert von Combobox in Datei schreiben Java Basics - Anfänger-Themen 2
J Combobox in andere Klasse übergeben Java Basics - Anfänger-Themen 3
B ComboBox(editable) - Text verändern Java Basics - Anfänger-Themen 7
H String aus Combobox auslesen Java Basics - Anfänger-Themen 2
I ComboBox mit Icons + Mehr...! Java Basics - Anfänger-Themen 6
1 Combobox anzeige Java Basics - Anfänger-Themen 7
1 combobox nicht an fesnter angeknüpft Java Basics - Anfänger-Themen 2
1 ComboBox Java Basics - Anfänger-Themen 4
S ComboBox Spielautomat Java Basics - Anfänger-Themen 3
F ComboBox sowie String in einer JTable Spalte Java Basics - Anfänger-Themen 2
H Darstellung ComboBox in jTable Java Basics - Anfänger-Themen 5
M Combobox Problem Java Basics - Anfänger-Themen 3
D ArrayList<String> to Combobox Java Basics - Anfänger-Themen 7
Spin ComboBox Java Basics - Anfänger-Themen 4
J Taschenrechner Combobox Reaktion auf Auswahl Java Basics - Anfänger-Themen 2
M ComboBox und ActionListener Java Basics - Anfänger-Themen 3
S AWT ComboBox Ausgaba Java Basics - Anfänger-Themen 5
K rückgabewert combobox Java Basics - Anfänger-Themen 15
E ComboBox werte auslesen Java Basics - Anfänger-Themen 4
E Combobox Auswahl überprüfen Java Basics - Anfänger-Themen 7
B ComboBox Größe ändern Java Basics - Anfänger-Themen 4
D ComboBox Java Basics - Anfänger-Themen 10
N nicht editierbare combobox davon oberstes element auslesen? Java Basics - Anfänger-Themen 5
H combobox auf leeres Feld prüfen? Java Basics - Anfänger-Themen 10
F ComboBox im Vektor auslesen, Vektor<JComboBox> Java Basics - Anfänger-Themen 6
D ComboBox auf <empty> überprüfen Java Basics - Anfänger-Themen 2
P Item in ComboBox manuell hinzufügen? Java Basics - Anfänger-Themen 3
C Welche Elemente sind in der ComboBox? Java Basics - Anfänger-Themen 3
G Wie doppelte Einträge in ComboBox vermeiden ? Java Basics - Anfänger-Themen 9
P Wert aus JTree in ComboBox setzen? Java Basics - Anfänger-Themen 2
D Combobox mit array abhängig von anderer Combobox mit array Java Basics - Anfänger-Themen 4
R Symbolschrift in einer ComboBox! Java Basics - Anfänger-Themen 10
G itemlistener bei combobox? Java Basics - Anfänger-Themen 10
G ComboBox und Arrays Inhalt speichern/ausgeben Java Basics - Anfänger-Themen 7
G ComboBox mit identischen einträgen Java Basics - Anfänger-Themen 2
G ComboBox in eine JTable einbinden Java Basics - Anfänger-Themen 2
A Combobox Struts Java Java Basics - Anfänger-Themen 7
S Größe einer Combobox Java Basics - Anfänger-Themen 5
S Combobox mehrfach verwenden Java Basics - Anfänger-Themen 3
A ComboBox mit unique Werten Java Basics - Anfänger-Themen 2
T ComboBox.GetSelectedIndex() gibt immer nur 0 zurück. Java Basics - Anfänger-Themen 2
H ComboBox zur Laufzeit erzeugen? Fehler. Java Basics - Anfänger-Themen 8
S Combobox mit Icons Java Basics - Anfänger-Themen 3
D wieso ist die combobox nicht von anfang an aktiviert? Java Basics - Anfänger-Themen 4
L Aktual.problem einer Var. wenn ComboBox Element ausgewählt Java Basics - Anfänger-Themen 4
D ComboBox mit Daten einer Datenenbank Java Basics - Anfänger-Themen 8
A Combobox füllen Java Basics - Anfänger-Themen 4
C Combobox mit "History" Java Basics - Anfänger-Themen 3
W Mehrfacheinträge in ComboBox Java Basics - Anfänger-Themen 8
M String Array in ComboBox toString() Java Basics - Anfänger-Themen 2
M [JTable] getValue throws ArrayOutOfBoundException Java Basics - Anfänger-Themen 1
chocobear26 Interface JOptionPane - Dialog_Fenster zeigt immer vorherige Eingabe an. Java Basics - Anfänger-Themen 4
A BufferedImage zeigt nur schwarz Java Basics - Anfänger-Themen 3
H Collections JTree remove zeigt keinen Effekt! Java Basics - Anfänger-Themen 8
A Objekt in Methode zurückgeben, JUnit zeigt Error Java Basics - Anfänger-Themen 2
L Namensliste mit Array zeigt nicht den gewünschten Inhalt Java Basics - Anfänger-Themen 12
S awt: paint Methode zeigt nichts an Java Basics - Anfänger-Themen 9
J Mehrere Eingabefelder programmiert (Zeigt Fehler an) Java Basics - Anfänger-Themen 6
snipesss IDE zeigt keine Fehler an, Programm wird jedoch nicht ausgeführt. Java Basics - Anfänger-Themen 18
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 12
Anfänger2011 Frame zeigt nicht gewünschtes Ergebnis an ... Java Basics - Anfänger-Themen 5
D Compiler-Fehler NullPointerExeption aber Ecplise zeigt keine Fehler an?! Java Basics - Anfänger-Themen 8
D addActionListener zeigt keine Wirkung Java Basics - Anfänger-Themen 8
P Compiler-Fehler wieso zeigt der compiler ein else without if? Java Basics - Anfänger-Themen 3
Z Lottoprogramm - Zeigt manchmal nur 5 Zahlen statt 6 an? Java Basics - Anfänger-Themen 4
J Umgebungsvariable Programmfenster zeigt kein Bild an Java Basics - Anfänger-Themen 1
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
J Slideshow zeigt bilder nicht an Java Basics - Anfänger-Themen 3
A Hilfe Java1 Uni : Code zeigt Fehler Java Basics - Anfänger-Themen 8
D Eclipse Juno zeigt Bild nicht bei Run Java Basics - Anfänger-Themen 3
D Erstellte Jar datei zeigt keine Bilder an Java Basics - Anfänger-Themen 5
B Eclipse zeigt code als falsch an Java Basics - Anfänger-Themen 19
S Speicheradresse auf die eine Referenz zeigt ausgeben Java Basics - Anfänger-Themen 12
P javaw.exe zeigt trotzdem Terminal/CmdPrompt Java Basics - Anfänger-Themen 2
Y add Funktion für GridBagLayout zeigt Button nicht an Java Basics - Anfänger-Themen 3
S Warum zeigt das Label nichts an??? Java Basics - Anfänger-Themen 9
S Shell zeigt keine Scrollbars Java Basics - Anfänger-Themen 2
Z JScrollPane zeigt Zeit als Datum Java Basics - Anfänger-Themen 5
S Teil derGUI zeigt sich erst später Java Basics - Anfänger-Themen 2
K TextField zeigt nicht an Java Basics - Anfänger-Themen 4
I JPanel zeigt nichts an durch Klicken auf das Button. Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Anzeige

Neue Themen


Oben