BufferedImage produisant fond noir

Allez bien donc je suis en train de faire un jeu, et je suis en train de modifier l'original frappé de l'image du marqueur par l'ajout d'un texte sur elle, et je suis en utilisant le code suivant:

import javax.swing.ImageIcon;
import javax.swing.Timer;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
public class HitMarker {
public static final Image rangeHitMarker = new ImageIcon(HitMarker.class.getResource("rangeHitMarker.png")).getImage();
public static final Image magicHitMarker = new ImageIcon(HitMarker.class.getResource("magicHitMarker.png")).getImage();
public static final Image monsterHitMarker = new ImageIcon(HitMarker.class.getResource("monsterHitMarker.png")).getImage();
public static final Font font = new Font("Tahoma", Font.PLAIN, 10);
public static final Color t = new Color(0,0,0,0);
public Image hitMarker;
public BufferedImage image;
public String hit;
public int attackStyle;
public boolean rangeAttack;
public int x;
public int y;
public Timer timer;
public boolean remove;
public HitMarker(int x, int y, int hit, int attackStyle){
this.hit = String.format("%d", hit);
this.remove = false;
this.x = x;
this.y = y;
this.attackStyle = attackStyle;
this.hitMarker = getImage();
BufferedImage bi = new BufferedImage(35, 20, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();
g.drawImage(hitMarker, 0, 0, null);
g.setFont(font);
g.setColor(Color.WHITE);
g.drawString(this.hit, 18, 13);
g.dispose();
image = bi;
timer = new Timer(800,
new ActionListener(){
public void actionPerformed(ActionEvent e){
remove = true;
timer.stop();
}
}
);
timer.setInitialDelay(800);
timer.start();
}
public HitMarker(int x, int y, int hit){
this.hit = String.format("%d", hit);
this.remove = false;
this.x = x;
this.y = y;
this.hitMarker = monsterHitMarker;
BufferedImage bi = new BufferedImage(35, 20, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();
g.drawImage(hitMarker, 0, 0, null);
g.setFont(font);
g.setColor(Color.WHITE);
g.drawString(this.hit, 18, 13);
g.dispose();
image = bi;
timer = new Timer(800,
new ActionListener(){
public void actionPerformed(ActionEvent e){
remove = true;
timer.stop();
}
}
);
timer.setInitialDelay(800);
timer.start();
}
public boolean isRangeAttack(){
return attackStyle == AttackStyleConstants.RANGE || attackStyle == AttackStyleConstants.RANGE_DEFENCE ? true : false;
}
public Image getImage(){
return isRangeAttack() ? rangeHitMarker : magicHitMarker;
}
}

En mettant particulièrement l'accent sur constructeur:
Et l'erreur que j'ai est que lorsque je crée le BufferedImage et dessiner l'image sur la mémoire tampon de l'image, c'est la création d'un fond noir automatiquement et je ne sais pas pourquoi. J'ai essayé des recherches sur ce sujet et certains disent de changer quelque chose à propos de la AlphaComposite et la g.clearRect() la méthode, mais aucune de ces semblent fonctionner. Par ailleurs, l'image que je me fais de la peinture sur le tampon d'image est 35x20 (qui est la dimensions de la mémoire tampon d'image) et il a un arrière-plan transparent. Si quelqu'un peut me dire comment supprimer ce fond noir, il serait très apprécié, merci.

pour mieux aider plus tôt post un SSCCE, deux raisons ---> la plupart des answerers ne pas aller à la 3ème côté des liens, 2) pour les contrats à terme lecteurs
Je pensais que j'étais?
Il voulait dire, c'est mieux de poster le code directement ici, ou tout simplement le problème de la partie et un lien vers la source, de sorte que si le lien est mort, votre question ne se uselesss dans l'avenir.
Oh, je vois, je suis désolé pour tout inconvénient que j'ai pu causer. Le problème est particulièrement en soit le constructeur (où j'ai réellement créer le BufferedImage) et j'ai pensé qu'il serait bon de montrer tout le code (en tenant compte de ses < 100) pour plus d'informations. Mais je suppose que ce serait juste bien de montrer que le constructeur.
à droite il y avait +1

OriginalL'auteur Josh M | 2012-06-29