HealthBar - Wie?

Hey Leute!

Ich habe dieses Wochenende mit meinem neuen Spiel begonnen. Dort werden mehrere Charaktere in einer kleinen 2d Welt gegeneinander kämpfen können.
Mein Problem im Moment ist eine HealthBar.
Ich möchte, dass die Leben der jeweiligen Spieler oben am Rand des Bildschirmes in Form eines Balkens angezeigt werden.

Das sollte dann in etwa so aussehen:

Ein „Gerüst“ dass jedes Mal an der selben Stelle angezeigt wird in dem sich ein einstellbarer Balken befindet.

Ich habe auch schon ein bisschen im Internet gesucht aber ehrlich gesagt habe ich kein Plan, welche Methode dafür am besten geeignet ist.
Kann man vielleicht einfach einen grünen Balken zeichnen und dessen Breite dann im nachhinein einstellen?
Oder gibt es bessere Methoden um direkt farbige Balken zu erstellen?

Vielen Dank!

*** Edit ***

Ich denke ich habe es herausgefunden xD

Image scaledImage = image.getScaledInstance()

bzw. g.drawImage(img, x, y, width, height, observer)

*** Edit ***

Im Moment sieht das Spiel in etwa so aus:

Die Grafik ist zwar nicht so toll, aber im Moment geht es mir um Training. Das Endergebnis muss noch nicht so toll sein.

.getScaledInstance() erzeugt immer ein neues Bild, sollte also wenn, dann nicht jeden Frame verwendet werden.

Wenn eine Farbe reicht, sind’s ja nur zwei Rechtecke …

(bei meinem Towerdefense werden die HP-Balken so gezeichnet: )

g.setColor(Color.BLACK);
g.fillRect((int)(x-MINIONSIZE/2-1),(int)(y-MINIONSIZE/2-6), MINIONSIZE+2, 6);
g.setColor(Color.GREEN);
g.fillRect((int)(x-MINIONSIZE/2),(int)(y-MINIONSIZE/2-5), MINIONSIZE*life/maxLife, 4);	

[QUOTE=iFelixxxx]*** Edit ***

Ich denke ich habe es herausgefunden xD

Image scaledImage = image.getScaledInstance()

bzw. g.drawImage(img, x, y, width, height, observer)[/QUOTE]Das ist schön… Tu dir aber selbst einen Gefallen: Vergiss das Erste und bleib’ grundsätzlich beim Zweiten. Den Grund dafür findest du hier:
http://forum.byte-welt.net/threads/10175-BufferedImage-vs-Image-Bilder-in-der-Grösse-verändern?p=65485#post65485

@Sunshine : „getScaledInstance()“ erzeugt nicht nur immer eine neue Instanz, sondern stets auch immer eine, auf die man unter Umständen noch warten muss, bevor sie „produziert“ wurde und man sie verwenden kann… Kurz gesagt: Ein Image statt ein BufferedImage. Braucht eigentlich kein Mensch mehr. :wink: