ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
153
153
EMPFEHLEN
-
Hallo Zusammen!
Also erst mal zu dem was ich vorhab ist mir einen dynamischen Notenberechner zu schreiben, d.h. ich gebe an Wie viele Fächer und wie viele Notenfelder ich haben möchte und der Berechner wird mir hier für dynamisch zusammengebaut. Ich habe ein beispiel Bild angehänt wo ihr sehen könnt wie ich mir des ungefähr vorstelle.
Ich habe mir gedacht ich schreibe mir eine Klasse in der ich mir ein Panel zusammenbauen lasse. Aus dieser Klasse erzeuge ich mir dann 4 Objekte und füge diese auf einem Frame zusammen, also pro Notensparte ein Panel (mit Bild leichter zu verstehen). Hat jemand eine bessere Idee?
Nun zu meinem eigentlichen Problem... Ich bin gerade dabei mir die Panel Klasse zu erstellen. Es kommt grad nur immer wieder eine Fehlermeldung und ich hab keine Ahnung wieso... Vllt könnt ihr mir ja helfen
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
package NotenBerechner; import java.awt.FlowLayout; import javax.swing.JPanel; import javax.swing.JTextField; public class Grundgerüst extends JPanel{ public int i_anzNoten = 4; public int i_anzFächer = 10; public JTextField[][] tf_noten = new JTextField[i_anzFächer][i_anzNoten]; Grundgerüst(){ this.setLayout( new FlowLayout() ); for(int noten = 0; noten < i_anzFächer; noten++){ for(int fächer = 0; fächer < i_anzNoten; fächer++){ this.add(tf_noten[i_anzFächer][i_anzNoten]); } } this.setSize(300, 300); this.setVisible(true); } }
Die Fehlermeldung lautet:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at NotenBerechner.Grundgerüst.<init>(Grundgerüst.java:18)
at NotenBerechner.Main.main(Main.java:5)
MfG
Saban
-
Code :
1
this.add(tf_noten[i_anzFächer][i_anzNoten]);
Also wenn ich richtig gelesen habe, erstellst du ein 2D-Array mit 10 und 4 Feldern, allerdings beginnt ein Array mit dem Index 0 und in dieser Zeile willst du in den Index 10 schreiben, den es aber nicht gibt (0-9).
Code :1
this.add(tf_noten[i_anzFächer-1][i_anzNoten-1]);
Würde ich sagen.
java.lang.ArrayIndexOutOfBoundsException heißt, dass du auf einen Index zugreifen willst, der nicht existiert.Handlanger des Dr. Ex1tus
Ich kenne Matzes dunkles Geheimnis ! oO
o
L_/
OL
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat.
Hallo Nuray!
-
Hallo,
Naja, ich würde vorschlagen, dass du einfach die Zählvariablen in der Schleife nutzt und nicht die Klassenvariablen. Dann funktioniert es auch.
MFG
Sascha
Edit: Damit es mal deutlich wird. Nutz einfach die Variablen "noten" und "fächer" um auf den Array-Inhalt zuzugreifen, statt den Variablen, die du für das Anlegen des Arrays genutzt hast.Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
29.05.08 08:40 #4
Der Fehler sagt, dass du an einer Stelle deine Arraygrenze überschreitest und zwar hier:
Code java:1 2 3 4 5
for(int noten = 0; noten < i_anzFächer; noten++){ for(int fächer = 0; fächer < i_anzNoten; fächer++){ this.add(tf_noten[i_anzFächer][i_anzNoten]); } }
Edit:
Nice, 3 Posts fast gleichzeitig
.
Was Sascha meint ist:
oder?Code java:1
this.add(tf_noten[noten][fächer]);
Geändert von Matze (29.05.08 um 08:45 Uhr)
"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
Hallo!
Danke für die schnellen Antworten und das sind meine lieblings Fehler... das Thema hätt ich mir echt sparen können... Danke nochmal!
Wenn wir schon dabei sind was sagt ihr zu meinem vorgehen? Hat jemand eine bessere Idee?
//Edit:
Habe den Code nun wie folgt geändert
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
package NotenBerechner; import java.awt.FlowLayout; import javax.swing.JPanel; import javax.swing.JTextField; public class Grundgerüst extends JPanel{ public int i_anzNoten = 4; public int i_anzFächer = 10; public JTextField[][] tf_noten = new JTextField[i_anzNoten][i_anzFächer]; Grundgerüst(){ this.setLayout( new FlowLayout() ); for(int noten = 0; noten < i_anzNoten; noten++){ for(int fächer = 0; fächer < i_anzFächer; fächer++){ this.add(tf_noten[noten][fächer]); } } this.setSize(300, 300); this.setVisible(true); } }
Fehlermeldung:
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at NotenBerechner.Grundgerüst.<init>(Grundgerüst.java:18)
at NotenBerechner.Main.main(Main.java:5)
OutOfBound Exception ist mir ja bekannt gewesen aber was ist eine NullPointerException?
MfG
SabanGeändert von Saban (29.05.08 um 08:53 Uhr)
-
29.05.08 08:58 #6
NullPointerException bedeutet, dass du eine Variable benutzt, die auf keinen Speicherbereich zeigt. Oder anders: Du benutzt eine leere Variable.
Guck doch mal, an welcher Stelle der Fehler genau auftritt und prüfe mal, ob in den dort verwendeten Variablen auch etwas steht
"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
Eine NullPointerException sagt aus, dass ein Object null ist.
Wenn du ein Array anlegst, hast du zwar den Speicherplatz reserviert, aber die Objecte sind noch nicht instanziert.
Mach es mal so.
Code :1 2 3 4 5 6
for(int noten = 0; noten < i_anzNoten; noten++){ for(int fächer = 0; fächer < i_anzFächer; fächer++){ tf_noten[noten][fächer] = new JTextField(); this.add(tf_noten[noten][fächer]); } }
Ein Rat von mir. Du solltest dich nochmal mit den Grundlagen von Java beschäftigen.
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
Danke für eure Hilfe!
Ja ich muss dir recht geben die Fehler dürften mir nicht mehr passieren...
Tut mir leid... Steh heut irgendwie aufm Schlauch...
MfG
Saban
Ähnliche Themen
-
Fehlersuche JS
Von Carrear im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 05.03.10, 00:08 -
Fehlersuche
Von brainsucker im Forum PHPAntworten: 5Letzter Beitrag: 08.09.07, 15:04 -
Fehlersuche
Von AIKler im Forum PHPAntworten: 24Letzter Beitrag: 10.08.07, 14:34 -
Dev-C++ Fehlersuche
Von cesupa im Forum C/C++Antworten: 2Letzter Beitrag: 18.06.07, 15:32 -
Fehlersuche
Von starfoxfs im Forum PHPAntworten: 5Letzter Beitrag: 10.11.04, 19:43





Zitieren

Login





