Guten Morgen liebe JAVA Community,
ich habe ein Panel auf dem mein YinYang(Panel) liegt.(Code siehe unten).
nun rufe ich immer setValue_HP(x); auf um den Wert zu ändern. Es funktioniert auch alles, nur es wird schleppend, bis gar nicht aktuallisiert.
Habe schon validate, revalidate, invalidate, repaint .... probiert. Nur manchmal werden die Grafiken neu gezeichnet.
ich habe ein Panel auf dem mein YinYang(Panel) liegt.(Code siehe unten).
nun rufe ich immer setValue_HP(x); auf um den Wert zu ändern. Es funktioniert auch alles, nur es wird schleppend, bis gar nicht aktuallisiert.
Habe schon validate, revalidate, invalidate, repaint .... probiert. Nur manchmal werden die Grafiken neu gezeichnet.
Code:
package gamecomponenten;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
public class YinYang extends JPanel{
private BufferedImage i_yin,i_yang,i_yiya;
private int hp=1,mp=1,exp=1;
public YinYang(){
try {
i_yin= ImageIO.read(new File("texture/hud/yin.gif"));
i_yang= ImageIO.read(new File("texture/hud/yang.gif"));
i_yiya= ImageIO.read(new File("texture/hud/yiya.gif"));
} catch (Exception e) {
}
this.setLayout(null);
this.setOpaque(false);
this.setSize(100, 100);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(i_yin.getSubimage(0, 100-hp, 100, hp),0,100-hp,this);
g.drawImage(i_yang.getSubimage(0, 100-mp, 100, mp),0,100-mp,this);
g.drawImage(i_yiya.getSubimage(0, 100-exp, 100, exp),0,100-exp,this);
}
public void setValue_HP(int hp){
if(hp<=0)hp=1;
this.hp=hp;
}
public void setValue_MP(int mp){
if(mp<=0)mp=1;
this.mp=mp;
}
public void setValue_EXP(int exp){
if(exp<=0)exp=1;
this.exp=exp;
}
}