# Canvas vs JPanel



## DamienX (11. Jun 2008)

Kann mir jemand einen plausiblen Grund nennen warum ein Swing JPanel einem
AWT Canvas zum simplen Zeichnen und repainten vorzuziehen sein soll?

Ist ein Canvas nicht eher ständiges Zeichnen gedacht?

danke im vorraus

Alex


----------



## Wildcard (11. Jun 2008)

Canvas ist AWT.
AWT ist veraltet.


----------



## DamienX (11. Jun 2008)

Das war mir schon klar...

es geht mir auch speziell um das Canvas und den Bezug auf die Spieleprogrammierung...
einen PLAUSIBLEN Grund warum ein JPanel dafür besser geeignet sein soll fehlt mir.
Es wird sehr viel aus dem AWT Package nach wie vor auch in Swing verwendet

Gibts nen Performanceunterschied? Geht nur um die Funktionalität?


----------



## Wildcard (11. Jun 2008)

AWT Komponten lassen sich nicht vernünftig in Swing Anwendungen integrieren, da sie Heavyweight sind.
Davon abgesehen machen Canvas und JComponent/JPanel genau das gleiche.
Völlig Latte was du nimmst. Die Frage müsste also eher lauten warum denn AWT?


----------



## Marco13 (11. Jun 2008)

_Völlig Latte was du nimmst._
Na, das ja gerade NICHT :wink: Canvas und JComponent erfüllen den gleichen Zweck. Eine leere Fläche, wo man reinzeichnen kann. Aber das war's auch schon.

_Es wird sehr viel aus dem AWT Package nach wie vor auch in Swing verwendet _
Ja, zum Beispiel Events, LayoutManager usw - aber mit Swing sollte man eben i.a. keine Compnents anzeigen, die keine JComponents sind.


----------



## Wildcard (11. Jun 2008)

Marco13 hat gesagt.:
			
		

> Na, das ja gerade NICHT :wink: Canvas und JComponent erfüllen den gleichen Zweck. Eine leere Fläche, wo man reinzeichnen kann. Aber das war's auch schon.


Ging ihm ja um 'Spieleprogrammierung', da braucht man selten tolle Widgets, insofern ist es wohl wirklich egal.
Aber alleine schon wegen der BufferStrategy wurde ich die Swing Komponeten verwenden.


----------



## Marco13 (11. Jun 2008)

Ich wollte ja nur verhindern, dass er dann denkt: "OK, wenn's Latte ist, nehm' ich nen Canvas", und wir uns dann (mal wieder) mit den Threads "Hilfe, es flackert" und "Hilfe, meine Popups sind nicht sichtbar" rumschlagen müssen ....  :roll:  :wink:


----------



## Quaxli (12. Jun 2008)

Ich würde mal sagen, Canvas ist die Klasse der Wahl, wenn es in Richtung Performance-Steigerung geht, z. B. active Rendering. Für 08/15-Spiele tut's auch ein JPanel.


----------



## Wildcard (12. Jun 2008)

Das ist doch Unsinn. Nenn mir bitte einen Grund warum das so sein sollte.


----------



## Quaxli (12. Jun 2008)

Was heißt da Unsinn? Wie willst Du mit JPanel ein aktives Rendering realisieren? JPanel bietet Dir keine Methoden um die BufferStrategy zu beeinflussen.


----------



## Wildcard (12. Jun 2008)

Component#setDoubleBuffered
Window#createBufferStrategy


----------



## Quaxli (12. Jun 2008)

Und Window ist nicht AWT?


----------



## Wildcard (12. Jun 2008)

Und JFrame erbt nicht von Window?


----------



## Guest (12. Jun 2008)

Ok wie ich mir das schon dachte gehen hier die Meinungen auseinander. 
Die Sache ist folgende:

Ich habe schon in diversen Sprachen kleinere Spiele programmiert und wollte mir nun mal ansehen ob
Java auch für größere 2D Projekte geeignet ist. Drum meine provokante Fragestellung  :wink: .
Schwanke für die Umsetzung eines Konzepts an dem ich schon sehr lange arbeite zwischen C++, C# (XNA)
und Java. 

Ich programmiere beruflich in Java im Bereich Logitik was mir natürlich einiges an Einarbeitungszeit ersparen 
würde habe aber auch ein paar C++ Erfahrungen. 

Nur bin ich (wie so viele andere) nicht von der Tauglichkeit Javas in der Spieleprogrammierung überzeugt.

Auf jedenfall dank ich euch für die Antworten!

Grüße Alex


----------



## Wildcard (13. Jun 2008)

Anonymous hat gesagt.:
			
		

> Nur bin ich (wie so viele andere) nicht von der Tauglichkeit Javas in der Spieleprogrammierung überzeugt.


Java Port von Quake 2. Schau dir die Benchmarks an.
http://bytonic.de/html/jake2.html


----------



## tuxedo (17. Jun 2008)

Und noch eins:

Spiele mit Java und OpenGL realisiert: http://www.lwjgl.org/projects.php

Das "optisch" beste in dieser Liste ist meiner Meinung nach "Tribal Trouble" (kommerziell).

- Alex


----------

