Hi.
Also ich sitze grad an einem Spielprojekt und möchte nun einen Goldzähler, HP Anzeiger etc. erstellen.
Ich habe dabei ein Problem, dass mein HP Anzeiger nicht geupdated wird, obwohl ich eine Nachricht erhalte, dass die HP von meinem Character gesunken ist.
Dies merke ich auch daran, dass der HP Balken seine Farbe ändert und auch in meiner Statussicht kann ich die aktuelle HP sehen.
Ich möchte aber, dass der mir auch so in meinem Anzeiger die aktuelle HP anzeigt und nicht die, die beim Start war.
So sieht mein Code aus:
Wie update ich das JLabel nun?
Ich habe es sogar mit einem drawString versucht, jedoch bekomme ich auch da nur den Anfangswert angezeigt und geupdated bekomm ich ihn leider auch nicht auf diesem Wege...
Ich wäre euch sehr sehr dankbar, wenn ihr mir helfen würdet.
Sitze nun seit gestern dadran und ich habe es nicht hinbekommen...
Lg
Also ich sitze grad an einem Spielprojekt und möchte nun einen Goldzähler, HP Anzeiger etc. erstellen.
Ich habe dabei ein Problem, dass mein HP Anzeiger nicht geupdated wird, obwohl ich eine Nachricht erhalte, dass die HP von meinem Character gesunken ist.
Dies merke ich auch daran, dass der HP Balken seine Farbe ändert und auch in meiner Statussicht kann ich die aktuelle HP sehen.
Ich möchte aber, dass der mir auch so in meinem Anzeiger die aktuelle HP anzeigt und nicht die, die beim Start war.
So sieht mein Code aus:
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import pp2014.team27.client.engine.*;
import pp2014.team27.shared.Character;
public class Counter extends JPanel {
//Objekt der Klasse Character wird erstellt
Character ch;
// backgroundimage fuer das Hauptpanel
Image background = new ImageIcon("gray.jpg").getImage();
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(background, 0, 0, getWidth(), getHeight(), null);
}
/*
* Parameter der Klasse ClientData werden an den Konstruktor weitergegeben
* Zeichnung der Panels
*/
public Counter (ClientData cd) {
this.ch = cd.getCharacterData();
// Hauptpanel, welches die anderen Panels beinhaltet
setSize(100,101);
setLayout(null);
setOpaque(false);
setVisible(true);
//start health
ImageIcon img=new ImageIcon("health.png");
// linke Seite, wo das Icon zu sehen ist
JLabel imgLabel=new JLabel();
imgLabel.setIcon(img);
JPanel healthPic=new JPanel();
healthPic.setSize(50,22);
healthPic.setOpaque(false);
healthPic.setLocation(0,0);
healthPic.add(imgLabel);
add(healthPic);
// Deklarierung und Initialisierung der Variable, zur Anzeige der HP
int hp=cd.getCharacterData().getHP();
JLabel healthLabel=new JLabel();
healthLabel.setText(""+ cd.getCharacterData().getHP());
healthLabel.setForeground(new Color(155,0,0));
healthLabel.setFont(new Font("Arial", Font.BOLD, 14));
// rechte Seite des Panels, wo der Zaehler sich befindet
JPanel healthCounter=new JPanel();
healthCounter.setSize(50,22);
healthCounter.setOpaque(false);
healthCounter.setLocation(50,0);
healthCounter.add(healthLabel);
add(healthCounter);
//end health
Wie update ich das JLabel nun?
Ich habe es sogar mit einem drawString versucht, jedoch bekomme ich auch da nur den Anfangswert angezeigt und geupdated bekomm ich ihn leider auch nicht auf diesem Wege...
Ich wäre euch sehr sehr dankbar, wenn ihr mir helfen würdet.
Sitze nun seit gestern dadran und ich habe es nicht hinbekommen...
Lg