Probleme mit JComboBox

  • Themenstarter Themenstarter Louis2
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
L

Louis2

Gast
Also ich habe 2 Probleme. Habe ein JFrame und drin zwei ComboBoxen.
1.Bei der eine wird eine Sprache übergeben und die Locale neu gesetzt. Danach wird der Wert rausgeholt und damit gearbeitet (z.b. "de_DE"). Es kommt eine NullPointerException, d.h der Wert wird gar nicht in die Variable choice gespeichert, wieso? (Alles muss beim klick von OK passieren) IF Anweisung Fehler??
Code:
public static Locale choice;
.
.
private void ActionPerformed_OK(java.awt.event.ActionEvent evt) {                                    
        
    String wahl = (String) ComboBox_Sprache.getSelectedItem();
    System.out.println(wahl); //Gibt das richtige Ergebnis schon aus
    if (wahl == "German")
    choice = new Locale("de_DE");
    else if (wahl == "Englisch")
    choice = new Locale("en_GB"); 
    else if (wahl == "Französisch")
    choice = new Locale("fr_FR");
    Frame frame = new Frame();
    EventQueue.invokeLater(new Runnable() {
    public void run() {
       new Frame().pack();
       new Frame().show();
    }
    });
2. Die zweite JComboBox sollte sich nur füllen wenn draufgeklickt wird vorher nicht. Das heißt beim klicken wird eine Datenbank-Verbindung aufgebaut und Wert rausgeholt, wenn keine Verbindung Fehlermeldung. Aber irgendwie kriege ich eine Verbindung hin nur füllt sich die Box nicht (habe es mit Mousclicked gemacht ist es so korrekt?). Wo ist denn hier der Fehler?

Code:
private void MouseClicked_Mandant(java.awt.event.MouseEvent evt) {                                      
        passwort = String.valueOf(PasswordField.getPassword());
        String Upper_Benutzername = TextField_Benutzername.getText().toUpperCase();
        DBConnection verbindung = new DBConnection(); // baut Verbindung zu DB
        List tfields = new ArrayList();
        try {
            Statement tablef = DBConnection.connection.createStatement(); 
            String resulttablef = "SELECT MANDATOR FROM mandator_agent m, agent a WHERE a.employeeid=m.employeeid AND a.username='" + Upper_Benutzername + "'" ;
            ResultSet rs3 = tablef.executeQuery(resulttablef);
            while (rs3.next())
            {
                tfields.add(rs3.getString(1));
            }
            List listfields = (java.util.List) tfields; 
            int fieldslen=listfields.size();
            
            for (int i=0;i<fieldslen;i++) 
            { 
                String outlistfields = (String) listfields.get(i);
                ComboBox_Mandant.addItem(new String[] { outlistfields }); // Soll in ComboBox anzeigen
            }
        }
        catch(Exception e3) 
        {    
            JOptionPane.showMessageDialog(null, "Error: " + "\n" + e3.getMessage(), "Message", JOptionPane.ERROR_MESSAGE); 
        }   
    }
 
Zu 1. Schau mal in die FAQ wie man Strings vergleicht.

Für 2. hab ich jetzt gerade keine Zeit drüberzuschauen, aber ich denke da wird sich jemand finden 😉
 
Für die, die Interesse haben: für 2 habe ich die Lösung gefunden - Mit einem PopupMenuListener geht es, nicht mit einem MouseListener..
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben