Laden und leeren von Comboboxen

didi577

Bekanntes Mitglied
Hallo,

ich habe in einer Auswertung 4 Comboboxen:
Box1
Box2
Box3
Box4
Sie sind voneinander abhängig. Wenn ich Box1 auswähle laden sich die anderen Boxen nachfolgend mit Werten aus einer DB. Wenn Box4 gefüllt ist startet eine Auswertug Methode.
Wenn ich die Auswahl in Box1 ändere sollen sich die anderen Boxen entsprechend anpassen. Damit die neuen Daten der Boxen 2 - 4 nicht "addiert" werden lösche ich vor dem Laden die Boxen 2 - 4 mit "box.removeAllItems();". Das klappt wunderbar.
Seitdem die Auswertungsmethode nach Box4 aufgerufen wird, und ich dann Box1 ändere, kommt es bei der Box2 zu einer NPE, alternativ auch bei den folgenden Boxen. Ich vermute es liegt an der remove Methode. Das war durch auskommentieren erkennbar.

Gibt es Alternativen zu "box.removeAllItems();" ? Kann ich das besser lösen?
 

didi577

Bekanntes Mitglied
das sind die Listener aller 4 Boxen
Java:
private class BoxDozentAusAction implements ActionListener {
       
       @Override
       public void actionPerformed(ActionEvent e) {
   
           if (boxDozent.getSelectedIndex()>=0) {
               boxKurs.setEnabled(true);
               boxKurs.removeAllItems();
               boxOrt.removeAllItems(); //leert beim Wechsel des Dozenten die Combobox Kurs
               boxDatum.removeAllItems();
               ladenBoxKurs();
           }
           
       }
   }
private class BoxKursAusAction implements ActionListener {
       
       @Override
       public void actionPerformed(ActionEvent e) {
           
           if (boxKurs.getSelectedIndex()>=0) {
               boxOrt.setEnabled(true);
               boxOrt.removeAllItems();
               boxDatum.removeAllItems();
               ladenBoxOrt();
           }    
       }
   }
   
   private class BoxOrtAusAction implements ActionListener {
       
       @Override
       public void actionPerformed(ActionEvent e) {
           
           if (boxOrt.getSelectedIndex()>=0) {
               boxDatum.setEnabled(true);
               boxDatum.removeAllItems();
               ladenBoxDatum();
           }
           
       }
   }
   
   private class BoxDatumAusAction implements ActionListener {
       
       @Override
       public void actionPerformed(ActionEvent e) {
           
           ladenAuswertung();
       }
   }

}
hier ist dann "ladenAuswertung()" nach Box4:
Java:
public void ladenAuswertung() {
       
       Connection con = null;
       try {
           String dozent = boxDozentM.getSelectedItem().toString();
           String kurs = boxKursM.getSelectedItem().toString();
           String ort = boxOrtM.getSelectedItem().toString();
           String datum = boxDatumM.getSelectedItem().toString();
           con = DriverManager.getConnection("jdbc:mysql://localhost:3306/schulaus?user=root&password=#Patrick1");
           PreparedStatement pst = con.prepareStatement("select land, a1, a2, a3, a4, b1, b2, b3, c1, c1_txt, c2, c3, c4, c5, d1, d2, d3, d4_txt, d5_txt from fragen where dozent=? AND kurs=? AND ort=? AND datum=?");
           pst.setString(1, dozent);
           pst.setString(2, kurs);
           pst.setString(3, ort);
           pst.setString(4, datum);
           ResultSet rs1 = pst.executeQuery();
           while (rs1.next()) {
               txtTest.setText(rs1.getString(10));
               System.out.println(rs1.getString(10));
           }
       
       }    catch (SQLException e) {
               System.out.println(e);
               e.printStackTrace();
           }       
   }
 

Robat

Top Contributor
Okay nur noch mal um sicher zu gehen, dass ich dein Problem richtig verstanden habe:

Je nach dem, was bspw. in Combobox1 ausgewählt ist werden die anderen Boxen neu geladen. Also wenn ich in der 1. Box das 2. Item auswähle werden in der 4. Box nur die letzten beiden Items angezeigt.

War nämlich kurz verwirrt, dass du da einen ActionListener verwendest o_O
 

didi577

Bekanntes Mitglied
Ich möchte Daten einer DB auswerten. Die 4 Boxen sind die ersten 4 DB Felder je Datensatz. Es gibt noch 4 Methoden zum Laden der Boxen.
 

didi577

Bekanntes Mitglied
damit lade ich die erste Box:
Java:
public void ladenBoxDozent() {

       Connection con = null;
       try {
           con = DriverManager.getConnection("jdbc:mysql://localhost:3306/schulaus?user=root&password=#Patrick1");
           PreparedStatement pst = con.prepareStatement("select DISTINCT dozent from fragen ORDER BY dozent");
           ResultSet rs = pst.executeQuery();
           while(rs.next()) {
               boxDozentM.addElement(rs.getString(1));   
           }
                   
           
           } catch (SQLException e) {
               System.out.println("ERROR" + e);
               e.printStackTrace();
           }
       }
 

Robat

Top Contributor
Ich glaub ein ItemListener ist eher etwas für dich.
Die Daten einer Combobox können einfach in abhängigkeit einer anderen geändert werden.
Hier mal ein kleines Beispiel:

~quick'n'dirty~
Java:
    private JComboBox jcb1;
    private JComboBox jcb2;
   
    private String[] obj1 = { "StringSet1", "StringSet2" };
    private String[] obj2 = { "Foo", "Bar"} ;
    public ComboTest()
    {
       jcb1 = new JComboBox(new DefaultComboBoxModel(obj1));
       jcb2 = new JComboBox(new DefaultComboBoxModel(obj1));
       
       jcb1.addItemListener(new ItemListener() {
           @Override
           public void itemStateChanged(ItemEvent e) {
               if(e.getStateChange() == ItemEvent.SELECTED)
               {
                   JComboBox c = (JComboBox) e.getSource();
                   if(c.getSelectedItem().equals("StringSet1"))
                   {
                       jcb2.setModel(new DefaultComboBoxModel(obj1));
                   }
                   else
                   {
                       jcb2.setModel(new DefaultComboBoxModel(obj2));
                   }
               }
           }
       });
       
       add(jcb1);
       add(jcb2);
    }
 

didi577

Bekanntes Mitglied
ok, schonmal Danke für deine Arbeit!!!
ich habe parallel mal vor die ladenAuswertung() mal eine if Bedingung gebaut:
Java:
private class BoxDatumAusAction implements ActionListener {
       
       @Override
       public void actionPerformed(ActionEvent e) {
           
           if (boxDozent.getSelectedIndex()>=0 & boxKurs.getSelectedIndex()>=0 & boxOrt.getSelectedIndex()>=0 & boxDatum.getSelectedIndex()>=0) {
           
           ladenAuswertung();
           }
       }
   }
das scheint es auch zu tun, so rufter die Methode ert nach erneutem Laden auf

ist das auch eine Alternative?
 

didi577

Bekanntes Mitglied
deinen Code werde ich mir morgen in Ruhe ansehen und probieren

ich habe in den Boxen zwischen 10 und 50 Werte

ich werden probieren was hier am efektivsten ist
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Dateien aus dem Resource Folder laden Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I SWT Plattformunabhängig laden - verschiedene SWT .jar laden Java Basics - Anfänger-Themen 0
C XML Datei speichern und laden Java Basics - Anfänger-Themen 18
J Alle Dateien aus einem Verzeichnis laden Java Basics - Anfänger-Themen 10
I Datei als Stream aus Ressource laden? Java Basics - Anfänger-Themen 2
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
K File (png) in Image laden Java Basics - Anfänger-Themen 3
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 1
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
S Bilder in .jar Datei laden Java Basics - Anfänger-Themen 10
M Datenbank in jTable Laden Java Basics - Anfänger-Themen 49
S Kann keine Bilder laden? Java Basics - Anfänger-Themen 9
C Problem: PC ohne Internet und keine Möglichkeit Programme zu laden Java Basics - Anfänger-Themen 5
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 0
L Fehler beim laden eines Icons Java Basics - Anfänger-Themen 3
L Resourcen laden klappt nicht Java Basics - Anfänger-Themen 2
L Speichern und Laden Java Basics - Anfänger-Themen 7
F File von Windowsfreigabe laden Java Basics - Anfänger-Themen 1
H Interface Objekte speichern und laden (serialisieren/deserialisieren) Java Basics - Anfänger-Themen 1
H Image laden Java Basics - Anfänger-Themen 4
B Image laden im GridBagLayout Java Basics - Anfänger-Themen 3
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
B Klassen Klasse dynamisch laden. Java Basics - Anfänger-Themen 8
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
S Serialisierung: Laden von Objekten - Risiken? Java Basics - Anfänger-Themen 4
R Eine Arrayliste in XML abspeichern und laden können Java Basics - Anfänger-Themen 7
J App auf einen Webserver laden Java Basics - Anfänger-Themen 14
S Gespeichertes aus ArrayList laden mithilfe der For-Schleife Java Basics - Anfänger-Themen 12
C Problem beim laden eines BufferedImage Java Basics - Anfänger-Themen 2
C Klassen aus einem Package ermitteln und per Laufzeit laden Java Basics - Anfänger-Themen 17
S LWJGL - Matrix vom Matrixstack laden Java Basics - Anfänger-Themen 3
Seikuassi Objekte in Datei reihenweise speichern/laden Java Basics - Anfänger-Themen 3
W (XML/XSL) Daten aus Eclipse in eine Klasse Laden. Java Basics - Anfänger-Themen 1
F Operatoren Enum aus Textdabei laden Java Basics - Anfänger-Themen 3
B Listener beim Laden (deserialize) wieder hinzufügen bzw. mitspeichern? Java Basics - Anfänger-Themen 3
T Android App: Laden dauert lange Java Basics - Anfänger-Themen 1
I Bild aus Bereich laden Java Basics - Anfänger-Themen 3
S Aus einer Klasse eine andere laden Java Basics - Anfänger-Themen 6
C Daten speichern und laden Java Basics - Anfänger-Themen 6
C Bild ins Frame laden und Objekte drüber legen Java Basics - Anfänger-Themen 1
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
B Bilder laden und drauf zugreifen[Eclipse] Java Basics - Anfänger-Themen 9
M Datei zu DropBox laden Java Basics - Anfänger-Themen 2
M Website im Hintergrund laden Java Basics - Anfänger-Themen 5
M Icon laden und anzeigen Java Basics - Anfänger-Themen 2
L Termin in Array speichern/laden Java Basics - Anfänger-Themen 21
K Transparents Bild laden -> Fehlermeldung Java Basics - Anfänger-Themen 6
T Bild laden Java Basics - Anfänger-Themen 7
S Image in Panel laden Java Basics - Anfänger-Themen 12
L Input/Output Sortieren Speichern Laden von ArrayListe Java Basics - Anfänger-Themen 14
H JButton - Icon(.png) aus resources laden Java Basics - Anfänger-Themen 23
J Laden von Dateien Java Basics - Anfänger-Themen 19
K ImageIcon laden Java Basics - Anfänger-Themen 6
M Problem mit null pinterexception beim laden von Bildern Java Basics - Anfänger-Themen 20
J NullPointerException bei Laden von Bilddatei Java Basics - Anfänger-Themen 16
C Automatisches Ausfuehren einer Funktion beim Laden eines Jar files Java Basics - Anfänger-Themen 3
L Applet: Laden unterbricht den Browserfokus (scrollen) Java Basics - Anfänger-Themen 2
algebraiker Nur Klassen aus einem bestimmten Jar laden Java Basics - Anfänger-Themen 16
B Std-Serialisierung - Speichern/Laden geht nur auf einem Rechner Java Basics - Anfänger-Themen 17
B Applet - Laden eines Java-Fensters bricht ab Java Basics - Anfänger-Themen 6
N Bilddatei laden Java Basics - Anfänger-Themen 42
K BufferedImage, Bilder laden Java Basics - Anfänger-Themen 15
M Webseite komplett laden Java Basics - Anfänger-Themen 4
J Erste Schritte Im Tante-Emma-Laden mehrere Artikel kaufen mit if-Abfrage Java Basics - Anfänger-Themen 24
L Image laden und auf jPanel ausgeben Java Basics - Anfänger-Themen 7
S BMP Bild laden Java Basics - Anfänger-Themen 7
S Input/Output Text und Bilder laden Java Basics - Anfänger-Themen 5
M Beim Start Methode laden die Textfelder füllt Java Basics - Anfänger-Themen 5
D GUI: Panel in Panel laden Java Basics - Anfänger-Themen 10
V Jar-Datei von Byte-Array oder Stream laden? Java Basics - Anfänger-Themen 9
S Klasse bei Laufzeit laden? Java Basics - Anfänger-Themen 2
JAVAnnik problem beim lvl laden Java Basics - Anfänger-Themen 15
J Dateien laden Java Basics - Anfänger-Themen 7
B JFrame neu laden Java Basics - Anfänger-Themen 7
S Problem beim Speichern und Laden von Daten Java Basics - Anfänger-Themen 13
D Bilder Laden, mit Eclipse ok, .jar nicht Java Basics - Anfänger-Themen 5
F Bilder aus .jar datei laden Java Basics - Anfänger-Themen 1
A Daten speichern und wieder in ein Array laden Java Basics - Anfänger-Themen 4
N Applets: Objekte vom Server laden Java Basics - Anfänger-Themen 4
L EOF handle bem Laden leerer Datei Java Basics - Anfänger-Themen 3
N Serialization, Laden klappt nicht wenn die Klasse geändert wurde Java Basics - Anfänger-Themen 3
M Bilder laden und zeichnen Java Basics - Anfänger-Themen 3
B Bildinformation in ein Array laden Java Basics - Anfänger-Themen 14
Luk10 Dateipfad beim Laden einer Datei + Neue kleine Frage! Java Basics - Anfänger-Themen 11
N Nachträgliches Laden einer Klasse. Java Basics - Anfänger-Themen 6
R In jLable Bild aus URL laden Java Basics - Anfänger-Themen 9
K OOP Ressource/Datei mit ClassLoader laden Java Basics - Anfänger-Themen 18
R Image laden die Zweite Java Basics - Anfänger-Themen 4
R Image laden Java Basics - Anfänger-Themen 10
E Keine neuen Beiträge Mit JavaMachine Datei vom Host in den Ram des Host laden. Java Basics - Anfänger-Themen 4
Burny91 Resourcen mit relativen Pfadangaben laden Java Basics - Anfänger-Themen 2
I CSV Datei auf HTML Seite hochladen und in DB laden Java Basics - Anfänger-Themen 9
O Grafik in Frame laden Java Basics - Anfänger-Themen 9
P Speichern und Laden Java Basics - Anfänger-Themen 11
K Bilder "langsam" laden Java Basics - Anfänger-Themen 4
S Serialized LinkedList aus Datei Laden Java Basics - Anfänger-Themen 15
R Welcher Weg um XML von URL zu laden? Java Basics - Anfänger-Themen 3
Ezra StyledDocument speichern und laden Java Basics - Anfänger-Themen 6
V Problem beim Programm laden Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben