B
Blocko
Gast
Hallo.
Ich muss für ein Software Projekt in der Schule ein Programm schreiben, welches mehrere mathematische Probleme löst. Ich habe auch soweit eigentlich alles fertig. Mein letztes Problem ist jetzt, das ich eine Oberfläche habe mit 3 Textfeldern in welche ich 3 Seitenlängen eines Dreiecks eingebe. Das malen habe ich wiefolg gelöst:
[Java] public void paint( int a, int b, int c, int d, int e, int f)
{
x1=a;
y1=b;
x2=c;
y2=d;
x3=e;
y3=f;
anzeige = new Canvas () {
public void paint (Graphics g)
{
g.clearRect(0, 0, 600, 575);
g.drawLine(x1,y1,x2,y2);
g.drawLine(x2,y2,x3,y3);
g.drawLine(x1,y1,x3,y3);
//
// Polygon umriss = null;
// g. clearRect (0, 0, 600, 575);
// g. setColor (Color. black);
// umriss = new Polygon (new int [] {x1, x2, x3},
// new int [] {y1, y2, y3}, 3);
// g. fillPolygon (umriss);
}
};
p.add(anzeige);
anzeige. setVisible (true);
anzeige. setSize (600, 575);
anzeige. setLocation (0, 0);
}
[/Java]
Da ich nicht den ganzen Quellcode hier reinstellen will, da das sicher zu viel und umständlich für euch wäre das richtige rauszusuchen hier noch die eventuell unklaren Instanzen/Variabeln hier sind dann noch
[Java]
private Canvas anzeige;
private int x1,x2, x3, y1, y2, y3;
private Panel p;
p=new Panel();
p.setBounds(400, 75, 600, 575);
p.setBackground(Color.lightGray);
frame.add(p);
[/Java]
So nun zu meinem Problem:
Wenn ich zum ersten Mal drei Seitenlängen eingebe und über einen Button die Methode paint(...) mit 6 dazugehörigen variabeln auslöse, wird alles richtig gemalt. Allerdings, wenn ich neue Seitenlängen eingebe, erneute den Button betätige, wodurch erneut paint(...), diesmal aber mit anderen Koordinaten, durchlaufen wird wird auf der Oberfläche/dem Pannel kein neues Dreieck gemalt, sondern das andere, alte Dreieck bleibt.
Ich weiß irgendwie nicht mehr was ich noch machen kann. Ich bin schon 10 mal mit dem Debugger durchgegangen und habe geguckt ob sich die Koordinaten auch ändern die übergeben werden und so weiter, aber ich glaube mir fehlt da etwas wissen zu der Klasse Canvas, da wir das in der Schule noch nicht so hatten. Wenn ihr es braucht kann ich auch nochmal den ganzen Quelltext hier reinstellen.
Ich bitte um Hilfe! =)
Vielen Dank schonmal, Blocko
Ich muss für ein Software Projekt in der Schule ein Programm schreiben, welches mehrere mathematische Probleme löst. Ich habe auch soweit eigentlich alles fertig. Mein letztes Problem ist jetzt, das ich eine Oberfläche habe mit 3 Textfeldern in welche ich 3 Seitenlängen eines Dreiecks eingebe. Das malen habe ich wiefolg gelöst:
[Java] public void paint( int a, int b, int c, int d, int e, int f)
{
x1=a;
y1=b;
x2=c;
y2=d;
x3=e;
y3=f;
anzeige = new Canvas () {
public void paint (Graphics g)
{
g.clearRect(0, 0, 600, 575);
g.drawLine(x1,y1,x2,y2);
g.drawLine(x2,y2,x3,y3);
g.drawLine(x1,y1,x3,y3);
//
// Polygon umriss = null;
// g. clearRect (0, 0, 600, 575);
// g. setColor (Color. black);
// umriss = new Polygon (new int [] {x1, x2, x3},
// new int [] {y1, y2, y3}, 3);
// g. fillPolygon (umriss);
}
};
p.add(anzeige);
anzeige. setVisible (true);
anzeige. setSize (600, 575);
anzeige. setLocation (0, 0);
}
[/Java]
Da ich nicht den ganzen Quellcode hier reinstellen will, da das sicher zu viel und umständlich für euch wäre das richtige rauszusuchen hier noch die eventuell unklaren Instanzen/Variabeln hier sind dann noch
[Java]
private Canvas anzeige;
private int x1,x2, x3, y1, y2, y3;
private Panel p;
p=new Panel();
p.setBounds(400, 75, 600, 575);
p.setBackground(Color.lightGray);
frame.add(p);
[/Java]
So nun zu meinem Problem:
Wenn ich zum ersten Mal drei Seitenlängen eingebe und über einen Button die Methode paint(...) mit 6 dazugehörigen variabeln auslöse, wird alles richtig gemalt. Allerdings, wenn ich neue Seitenlängen eingebe, erneute den Button betätige, wodurch erneut paint(...), diesmal aber mit anderen Koordinaten, durchlaufen wird wird auf der Oberfläche/dem Pannel kein neues Dreieck gemalt, sondern das andere, alte Dreieck bleibt.
Ich weiß irgendwie nicht mehr was ich noch machen kann. Ich bin schon 10 mal mit dem Debugger durchgegangen und habe geguckt ob sich die Koordinaten auch ändern die übergeben werden und so weiter, aber ich glaube mir fehlt da etwas wissen zu der Klasse Canvas, da wir das in der Schule noch nicht so hatten. Wenn ihr es braucht kann ich auch nochmal den ganzen Quelltext hier reinstellen.
Ich bitte um Hilfe! =)
Vielen Dank schonmal, Blocko