L
Lixor
Gast
Hallo,
ich hoffe mir kann einer helfe. Nachdem ich über 4h versuche die Paint funktion eines Applets zu zeichnen, brauche ich einfach Hilfe, weil ich einfach nicht weiter komme.
Ich habe 3 Klassen.
1. Hier werden Knoten gespeichert, wie Höhe und Nachbarknoten etc.
2. Labyrinth, die aus den Knoten der 1. Klasse besteht.
3. Main, wo ich das Labyrinth erzeuge und mit werten befülle
In der "Text" Version, kann ich die Werte auslesen. Die Werte werden also korrekt gespeichert. Wenn ich es aber mittels Applet zeichnen will, bekomme ich keine Werte mehr!
Main:
Labyrinth:
Wenn ich also mittels Applet es zeichnen will, bekomme ich nur die Werte 0. Die Werte werden also nicht richtig ausgelesen.
Irgendwo ist ein Denkfehler versteckt!
ich hoffe mir kann einer helfe. Nachdem ich über 4h versuche die Paint funktion eines Applets zu zeichnen, brauche ich einfach Hilfe, weil ich einfach nicht weiter komme.
Ich habe 3 Klassen.
1. Hier werden Knoten gespeichert, wie Höhe und Nachbarknoten etc.
2. Labyrinth, die aus den Knoten der 1. Klasse besteht.
3. Main, wo ich das Labyrinth erzeuge und mit werten befülle
In der "Text" Version, kann ich die Werte auslesen. Die Werte werden also korrekt gespeichert. Wenn ich es aber mittels Applet zeichnen will, bekomme ich keine Werte mehr!
Main:
Java:
public class Main extends Applet {
public static int anzahl = 10;
static Labyrinth labyrinth = new Labyrinth(anzahl);
public static void main(String[] args) {
// Höche einfügen
int c = 0;
for(int i=0; i<anzahl; i++) {
for(int j=0; j<anzahl; j++) {
c += 1;
labyrinth.setHeightNode(j,i, c);
}
}
…
System.out.println(labyrinth.getHeightNode(2,5) + " (" + labyrinth.getObstacleNode(2,5) + ")");
}
public void paint(Graphics g) {
labyrinth.printLabyrinth(g);
}
}
Labyrinth:
Java:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
public class Labyrinth {
private LabyrinthNode[][] lNode;
private int anzahl;
Labyrinth(int anzahl) {
lNode = new LabyrinthNode[anzahl][anzahl];
this.anzahl = anzahl;
initialisieren(anzahl);
}
private void initialisieren(int anzahlNodes) {
for(int i=0; i<anzahlNodes; i++) {
for(int j=0; j<anzahlNodes; j++) {
lNode[i][j] = new LabyrinthNode();
}
}
}
public void setHeightNode(int i, int j, int h) {
lNode[i][j].setHeight(h);
}
public int getHeightNode(int i, int j) {
return lNode[i][j].getHeight();
}
public void printLabyrinth(Graphics g) {
// Raster zeichnen
g.setColor(Color.orange);
int raster = 30;
for(int i=0; i<anzahl; i++) {
for(int j=0; j<anzahl; j++) {
g.drawRect(10+(i*raster), 10+(j*raster), raster, raster);
}
}
System.out.println(lNode[2][5].getHeight());
System.out.println(lNode[0][0].getHeight());
// Labyrinth auslesen (Höhe)
g.setColor(Color.black);
g.setFont(new Font("Arial",Font.PLAIN,11));
for(int i=0; i<anzahl; i++) {
for(int j=0; j<anzahl; j++) {
System.out.println(lNode[i][j].getHeight());
g.drawString(String.valueOf(lNode[i][j].getHeight()), 24+(i*11), 23+(j*11));
}
}
}
}
Wenn ich also mittels Applet es zeichnen will, bekomme ich nur die Werte 0. Die Werte werden also nicht richtig ausgelesen.
Irgendwo ist ein Denkfehler versteckt!