Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Java Unterstützung gebraucht :D
#1
Ich hatte vor in Java nen kleinen, noch simplen Physics-simulator zu machen, und wollte grade testen ob die derzeitigen Objekte ordentlich dargestellt werden, nur um zu sehen das java irgendwie nichts darstellt. Vlt is ja unter uns jemand der hier mich zurechtweisen kann Big Grin



[code=java]public void paintComponent(Graphics g){
int x,y,w;
for(GameObject i:objects){ /*"objects" is a list(size currently 1) with a set of objects that own attributes requested during the method*/
x = (int)Math.round((i.pos[0]-i.radius)*10+game.frame.getWidth()/2); /*calculating the pos of the upper left corner */
y = (int)Math.round((i.pos[1]-i.radius)*10+game.frame.getHeight()/2);
w = (int)Math.round(i.radius*20); /*width, or diameter, of the circle*/
g.setColor(i.col);
g.fillOval(x,y,w,w);
}
}[/code]Das Test-Object wird dank des default-Konstruktors mit diesen werten belegt:

pos = [0,0]
radius = 2
farbe = schwarz

rein theorethisch sollte also die paint Methode nun einen kreis mit radius 2(*10 pixel) an der relativen position 0,0 (in der mitte des fensters) zeichnen. Das der fensterursprung in der oberen linken ecke ist is mir bewusst, weshalb die paintmethode frame.getHeight/getWidth/2 addiert, um so zur mitte zu gelangen. Dennoch erscheint kein kreis. Falls jemand ne lösung findet bin ich sehr dankbar xD
FRA32, leader of the Pixeltwist building project.
I would love help with the project.
Zitieren
#2
Welche Werte haben x, y, w vor Ausführung von Zeile 8?

Welcher Klasse gehört die paintComponent Methode an?
Zitieren
#3
Ich hab mal versucht x,y und w mit System.out.println ausgeben zu lassen, aber die konsole bleibt leer :I
die methode gehört zu einer eigenen klasse namens ObjectHandler, welche vorerst Canvas extendet. Ka, ob es irgendwas damit zu tun hat.
FRA32, leader of the Pixeltwist building project.
I would love help with the project.
Zitieren
#4
Schau vllt nochmal nach ob du´s ihm richtig übergeben hast. Denke da liegt der Fehler, weil wenn er nichts ausspuckt ist es im normalfall null. Smile
In Your Face!
Zitieren
#5
console outputtet immer was, auch bei null, da würd dann stehen "X: 0" oda ähnlich. Ich glaube eher, wenn die nich printen, wird System.out.println garnich aufgerufen, was aber seltsamm is da ich es direkt in die paintComponent methode geschrieben hab, und diese ja sofort ausgelöst wird wenn ich sag frame.add(component)
FRA32, leader of the Pixeltwist building project.
I would love help with the project.
Zitieren
#6
Ich glaub ich hab nu ne lösung. Wenn ich die superklasse von Canvas auf JPanel umänder scheint es wieder zu funktionieren, weil Canvas anscheinend kein PaintComponent besitzt.
FRA32, leader of the Pixeltwist building project.
I would love help with the project.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste