I hope you can help me concerning a problem in my drawString.
I do some drawing within a Factory class and return a BufferedImage with a String on it.
public class Factory {
   public BufferedImage create() {
       TempPanel tempPanel = new TempPanel(new Dimension(100, 100));
       return tempPanel.createImage();
   }
   private class TempPanel extends JPanel {
       public TempPanel(Dimension d) {
           this.setVisible(true);
           this.setSize(d);
       }
       public BufferedImage createImage() {
           BufferedImage bi = new BufferedImage(this.getSize().getWidth(), this.getSize().getHeight(), BufferedImage.TRANSLUCENT);
           this.paintComponent(bi.createGraphics());
           return bi;
       }
       @Override
       public void paintComponent(Graphics g) {
           super.paintComponents(g);
           // General setup
           Graphics2D g2 = (Graphics2D) g;
           g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
           // Transparent Background
           g2.setComposite(AlphaComposite.Clear);
           g2.fillRect(0, 0, graphicalObject.width, graphicalObject.height);
           g2.setComposite(AlphaComposite.Src);
           // Different settings for a certain graphical object
           g2.setFont(new Font("TimesRoman", Font.PLAIN, 12);
           // Actual drawing
           g2.drawString("Test", 0, 0);
       }
    }
}
And then I also have a JPanel in which this image should be drawn:
public class Label extends JPanel {
   // ...
   @Override
   public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        Factory factory = new Factory();
        BufferedImage img = factory.create();
        g2.drawImage(img, 0, 0, null);
   }
}
The problem ist that the text only appears if i minimize and restore the window, but as soon as I start moving the mouse within the window, the text disappears again. When I call drawRect() instead of drawString(), everything works fine?!
Can someone tell me why?
Thanks!
 
    