Hallo liebe Java Gemeinde!
Ich bin ein Berliner Schüler, der gerade im Informatikunterricht in Teamarbeit ein kleines "Programm" entwickelt, welches Sudokus löst. Wir sind schon so weit, dass wir eine Version am Laufen haben, die über die Konsole läuft und da wir noch Zeit haben und ich ein etwas zu großes "Maul" hatte, bot ich mich an eine nette graphische Oberfläche zu machen.
Zu Beginn dachte ich mir, es sei ja ganz einfach: Man schnappt sich den JavaEditor und klickt sich etwas zusammen... Nur man hat Nachteile. Der wohl größte ist es, dass ein Sudokufeld bekanntlich 81 Felder hat, die man beim Ein- und Auslesen oder anderen Dingen immer einzeln ansprechen soll. -> Unpraktisch!
Also haben wir und noch einmal zusammen gesetzt und sind auf die prima Idee gekommen, dass Textfelder ja im Grunde genommen wie Klassen zu benutzen sind. Daraus folgt bei 81 Feldern ein Array anzulegen, weiles vom Typ "TextField" ist.
Die Idee ist denke ich schon annährend richtig, nur klappt das nicht so, wie wir uns das dachten!
Hier der Gedankenganz zum Aufbau:
Sorry, das das hier jetzt relativ lang ist, aber den Rest habe ich schon rausgeschnitten...
Ich bekomme in dem Falle:
Exception in thread "main" java.lang.NullPointerException
at gui.<init>(gui.java:41)
at gui.main(gui.java:111)
(Zeilen stimmen nicht mit Beispiel überein, da ich ja gekürzt habe...)
Zeile 41 ist:
textfeld[index].setBounds(j, i, 25, 25);
Zeile 111 ist:
new gui("Sudokus Lösen");
Als Test, ob das mit der Klasse funktioniert, habe ich auch einmal direkt eien Index außerhalb des Bereiches angesprochen (z.B.: textfeld[90]), dann bekomme ich einen OutOfBound Fehler...
Ich bin verwirrt! Was mache ich falsch?
Würde mich freuen, wenn sich jemand dem Problem widmen würde!
Danke also schon im Voraus!
MfG
Tim
PS: Ich bitte die etlichen fachlichen Ungebauigkeiten bitte zu überlesen
Ich bin ein Berliner Schüler, der gerade im Informatikunterricht in Teamarbeit ein kleines "Programm" entwickelt, welches Sudokus löst. Wir sind schon so weit, dass wir eine Version am Laufen haben, die über die Konsole läuft und da wir noch Zeit haben und ich ein etwas zu großes "Maul" hatte, bot ich mich an eine nette graphische Oberfläche zu machen.
Zu Beginn dachte ich mir, es sei ja ganz einfach: Man schnappt sich den JavaEditor und klickt sich etwas zusammen... Nur man hat Nachteile. Der wohl größte ist es, dass ein Sudokufeld bekanntlich 81 Felder hat, die man beim Ein- und Auslesen oder anderen Dingen immer einzeln ansprechen soll. -> Unpraktisch!
Also haben wir und noch einmal zusammen gesetzt und sind auf die prima Idee gekommen, dass Textfelder ja im Grunde genommen wie Klassen zu benutzen sind. Daraus folgt bei 81 Feldern ein Array anzulegen, weiles vom Typ "TextField" ist.
Die Idee ist denke ich schon annährend richtig, nur klappt das nicht so, wie wir uns das dachten!
Hier der Gedankenganz zum Aufbau:
Code:
mport java.awt.*;
import java.awt.event.*;
public class gui extends Frame {
// Anfang Variablen
public static TextField[] textfeld;
// Ende Variablen
public gui(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
int frameWidth = 339;
int frameHeight = 405;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2 ;
setLocation(x, y);
Panel cp = new Panel(null);
cp.setBackground(Color.GRAY);
add(cp);
// Anfang Komponenten
textfeld = new TextField[81];
int index = 0;
for(int i = 16; i < 300; i = i + 32){
for(int j = 16; j < 300; j = j + 32){
if(f<81){
textfeld[index].setBounds(j, i, 25, 25);
textfeld[index].setText("");
cp.add(textfeld[index]);
index++;
}
}
}
// Ende Komponenten
setResizable(false);
setVisible(true);
}
public static void main(String[] args) {
new gui("Sudokus Lösen");
}
}
Sorry, das das hier jetzt relativ lang ist, aber den Rest habe ich schon rausgeschnitten...
Ich bekomme in dem Falle:
Exception in thread "main" java.lang.NullPointerException
at gui.<init>(gui.java:41)
at gui.main(gui.java:111)
(Zeilen stimmen nicht mit Beispiel überein, da ich ja gekürzt habe...)
Zeile 41 ist:
textfeld[index].setBounds(j, i, 25, 25);
Zeile 111 ist:
new gui("Sudokus Lösen");
Als Test, ob das mit der Klasse funktioniert, habe ich auch einmal direkt eien Index außerhalb des Bereiches angesprochen (z.B.: textfeld[90]), dann bekomme ich einen OutOfBound Fehler...
Ich bin verwirrt! Was mache ich falsch?
Würde mich freuen, wenn sich jemand dem Problem widmen würde!
Danke also schon im Voraus!
MfG
Tim
PS: Ich bitte die etlichen fachlichen Ungebauigkeiten bitte zu überlesen