2016-04-01 7 views
0

Ich habe eine JPanel verwendet und überschreiben paintComponent(), um meine Zeichnung in Swing-Spielen durchzuführen. Ich versuche jetzt, ein Inventar hinzuzufügen, das verschiedene Gegenstände enthält, die der Spieler herumziehen und zu verschiedenen Slots in seinem "Rucksack" auf dem Bildschirm bewegen kann. Sollten Swing-Spiele nur auf eine einzelne JPanel oder eine andere Komponente zeichnen (Beispiel: Bilder des Gegenstands an der Maus zeichnen) oder können Sie JButton s hinzufügen, deren Symbole Bilder der Gegenstände sind?Sollten Swing-Spiele nur eine Zeichenkomponente haben?

Sollte das Spiel nur die eine Zeichenkomponente haben, oder können Sie mehr hinzufügen?

+2

Es ist kein Problem, mehrere Komponenten zu zeichnen. Und natürlich können Sie auch Swing-Komponenten wie 'JButton' oder andere hinzufügen, die zu Ihrem Design passen würden. – Berger

+1

Die Frage hängt von mehreren Dingen ab - wollen Sie, dass Swing den Malprozess steuert oder nicht und wie komplex das Spiel ist. Wenn Swing es dir erlaubt, alle Bilder für dich zu machen, solltest du keine Probleme haben. Wenn Sie die Kontrolle über den Malprozess ("BufferedStrategy") übernehmen wollen, können Probleme auftreten – MadProgrammer

Antwort

3

Grundsätzlich können Sie eine beliebige Anzahl von Komponenten haben, die Sie haben möchten. Swing – wie jede andere ausreichend aufwendige Bibliothek wie SWT für Java oder Qt und WxWidgets für C++ – ist intelligent genug, um auf dem Bildschirm nur das zu zeichnen, was tatsächlich wirklich notwendig ist.

Solange Sie keine Leistungsprobleme haben, gibt es kein Problem damit. Wenn dies tatsächlich passiert, möchten Sie vielleicht zuerst Ihre eigene paintComponent-Implementierung betrachten, da dies der wahrscheinlichste Ort ist, an dem Sie die Effizienz verlieren.