LazyWolf: Formularelemente über Bilder zeichnen...

Beitrag lesen

Irgendwie kriege ich das nicht hin. Entweder werden nur Bilder oder nur Formulare angezeigt... Der Punkt ist, ich möchte die Labels über die Bilder zeichnen. (Sie stellen die Spielernamen dar)

So sieht der relevante Code aus:

public void startFight()
  {
  if(player_ichi.char_class == "Mage")
   {

showPlayers();
   showNames();

}
  }

private void showPlayers()
  {
  Graphics g = getGraphics();

MediaTracker mt = new MediaTracker(this);
  mt.addImage(player_ichi.pl_image, 0);
  mt.addImage(player_ni.pl_image, 0);

try
   {
   //Warten, bis das Image vollständig geladen ist,
   mt.waitForAll();
   }
  catch (InterruptedException e)
   {
   //nothing
   }

Color col = new Color(255, 255, 255);

g.setColor(col);
  g.fillRect(2, 2, 418, 268);

Image pl_image_ichi = player_ichi.pl_image;
  Image pl_image_ni = player_ni.pl_image;

if(player_ichi.pl_image != null)
   {
   g.drawImage(pl_image_ichi,40,60,this);
   }

if(player_ni.pl_image != null)
   {
   g.drawImage(pl_image_ni,250,60,this);
   }
  }

private void showNames()
  {
  Graphics g = getGraphics();

getContentPane().setLayout(null);

saved_name_ichi = new JLabel(player_ichi.name);
  saved_name_ichi.setBounds(40, 50, 100, 20);
  getContentPane().add(saved_name_ichi);

saved_name_ni = new JLabel(player_ni.name);
  saved_name_ni.setBounds(250, 50, 100, 20);
  getContentPane().add(saved_name_ni);

super.paint();
  }

Abhängig davon, was in Fight() zuletzt aufgefrufen wird, das wird angezeigt.
Setze ich die Koordinaten von den Labels tiefer, sieht man beides. Es scheint also nur eine Aufeinander-Zeichnen-Problem zu sein...