Auf Thema antworten

Vielen Danke, du rettest mir das Leben, das ist genau das was ich gebraucht habe :)

Nur habe ich immernoch das Problem der "java.lang.NullPointerException". Könnte jemand vielleicht mal hierdrüber schauen um zu gucken ob ich vll ein Fehler habe?

[code=Java]

private Connection zugriff;

public boolean zugriffOeffnen(){

        boolean antwort = false;

        try {

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

            String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Datenbank.MDB";

            zugriff = DriverManager.getConnection(url);

            antwort = true;

        }

        catch (Exception ex) {

            System.out.println("Datenbankanbindung fehlgeschlagen"+ex);   

        }

        return antwort;

    }

   

   

    public boolean zugriffSchliessen(){

        boolean antwort = false;

        try {

            zugriff.close();

            antwort = true;

        }

        catch (Exception ex) {

            System.out.println("Datenbankanbindung konnte nicht geschlossen werden"+ex);   

        }

        return antwort;

   

    }[/code]


Ich versteh noch nicht ganz warum ich die toString() Methode in der Spieler Klasse brauche wenn ich die Daten ja schon in der renderJComboBox() Methode übergebe? Also ich verstehs schon denk ich, ich hab mit dem Vector die Nummer noch dabei und an die JComboBox will ich ja nur den Namen haben, die toString Methode macht aus den 2 Strings (Vorname und Name) ein String den ich dann an die ComboBox ranhängen kann. Übergebe ich dann der ComboBox 2 Sachen? Ich kann die renderMethode nicht benutzen da sich die GUI in einer anderen Klasse befindet und die toString Methode zeigt bei mir einen Fehler an. Ich konnte mich damit auch noch nicht richtig befassen, da ich jetzt direkt von der Schule zur Arbeit muss :p


Vielen Dank nochmals du hast mich aufjedenfall schon ma ein rießen Stück weitergebracht,

Ilyu


EDIT:

So ich habs mir mal bissl genauer angeschaut und es ein bisschen mehr verstanden :)

Ich weiss nicht ob ich das jetzt falsch interpretiere da toString eher Neuland für mich ist, ich habe den Fehler der auftrat beseitigt indem ich sie in [code=Java]public String toString() {

        return vorname + " " + name;

       

    }[/code] umgeändert habe.

und das renderJCombobox() in [code=Java]public JComboBox renderJCombobox() {

         Vector<Spieler> spielerListe = getSpieler();

         return new JComboBox(spielerListe);

    }

[/code] desweiteren hatte ich vergessen die ComboBox zu importieren :x


Ich stehe aber leider immernoch vor dem [code=Java]java.lang.NullPointerException[/code] Problem

Wenn ich die Methode getSpieler() aufrufe bekam ich den ersten Namen und dann die NullPointerException. Mittlerweile bekomm ich nur noch die NullPointerException :/


Wenn ich eine JComboBox in meiner GUI Klasse erstelle

[code=Java]

private JComboBox getJComboBox1() {

        if (jComboBox1 == null) {

            jComboBox1 = dbz.renderJCombobox();

            jComboBox1.setBounds(new java.awt.Rectangle(77,47,186,39));

        }

        return jComboBox1;

    }

[/code]

bekomm ich diesen Fehler:

[code=Java]

Exception in thread "main" java.lang.NullPointerException

    at paketFensterklassen.Teamfenster.getJComboBox2(Teamfenster.java:78)

    at paketFensterklassen.Teamfenster.getJContentPane(Teamfenster.java:47)

    at paketFensterklassen.Teamfenster.initialize(Teamfenster.java:33)

    at paketFensterklassen.Teamfenster.<init>(Teamfenster.java:22)

    at paketFachklassen.Start.main(Start.java:11)

[/code]


Das würde ja eigentlich heißen, dass das ResultSet leer ist oder nicht? Aber woran liegt das? Die DB ist gefüllt mit Beispiel Werten und die Abfrage stimmt doch auch? :/


so long,

ilyu :)


edit2:


Habe jetzt, um zu testen ob es an der Abfrage liegt, mal ne Methode geschrieben die einfach nur die Namen in der Konsole ausgibt - und siehe da, das klappt natürlich :x

Hier die Methode:

[code=Java]public void test(){

           try{

            Statement stmt = zugriff.createStatement();

            ResultSet daten = stmt.executeQuery("SELECT spielerNr,Name,Vorname,Team FROM Spieler WHERE Team = false order by Name,Vorname;");

            while(daten.next()){

                System.out.println(daten.getString(2));

            }

           

        }catch(Exception e){

            System.out.println(e);

        }

   

       

    }

[/code]


getSpieler() lieft immernoch eine java.lang.NullPointerException, an irgend einem kleinen Detail liegts wohl nur welches ???:L



Oben