Doch, hier weis jemand was
Die Lösung, die ich oben gepostet habe funktioniert doch einwandfrei...
Hier mal ein vollständiges Beispiel (Achtung, nur schnell gecodet...)
[Java]import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.TexturePaint;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TexturePaintTest extends JPanel {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("TexturePaintTest#1");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize();
frame.setSize(800, 600);
frame.setLocation((d.width - frame.getWidth()) / 2, (d.height - frame.getHeight()) / 2);
frame.setLayout(new BorderLayout());
frame.add(new TexturePaintTest());
frame.setVisible(true);
}
private static final long serialVersionUID = 6796947238573004947L;
private BufferedImage img = null;
private TexturePaint texture = null;
private Font font = null;
public TexturePaintTest() {}
private void init() {
try {
URL url = getClass().getResource("texture.png");
img = ImageIO.read(url);
Rectangle anchor = new Rectangle(img.getWidth(), img.getHeight());
texture = new TexturePaint(img, anchor);
font = new Font("Arial Black", Font.BOLD, 120);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void paint(Graphics g) {
if (img == null)
init();
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setPaint(texture);
g2.setFont(font);
g2.drawString("String", 100, 100);
}
}
[/Java]