Hallo,
wenn ich auf ein BufferedImage zeichnen will, wechselt die Farbe willkürlich und ich habe keine Ahnung, warum. Meine Methode:
Ergebnis ist, dass die Farbe des Hintergrundes (bzw. der einzelnen Blöcke, aus denen der Hintergrund besteht) und die Farben der einzelnen Buchstaben (drawString) zwischen Gelb, Rot und Grün wechseln. Da die Methode von einem Thread einmal pro Sekunde aufgerufen wird, wechseln unterschiedliche Buchstaben und Hintergrundblöcke jeweils einmal pro Sekunde ihre Farbe.
Nur woran liegt das?
wenn ich auf ein BufferedImage zeichnen will, wechselt die Farbe willkürlich und ich habe keine Ahnung, warum. Meine Methode:
Java:
public void paint(Graphics g) {
if (screenImage == null) {
screenImage = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
screenGraphics = screenImage.getGraphics();
screenGraphics.setFont(font);
}
if (hasTextChanged) {
for (int i = 0, x = 0; i < chars.length; i++, x++) {
if (x >= columns)
x = 0;
int y = i / columns;
screenGraphics.setColor(Color.YELLOW);
screenGraphics.fillRect(x * CHAR_WIDTH, y * CHAR_HEIGHT, CHAR_WIDTH, CHAR_HEIGHT);
screenGraphics.setColor(Color.RED); // Testweise
screenGraphics.setColor(Color.GREEN);
screenGraphics.drawString("A", x * CHAR_WIDTH, (y * CHAR_HEIGHT) + 10);
}
hasTextChanged = false;
}
g.drawImage(screenImage, 0, 0, null);
}
Ergebnis ist, dass die Farbe des Hintergrundes (bzw. der einzelnen Blöcke, aus denen der Hintergrund besteht) und die Farben der einzelnen Buchstaben (drawString) zwischen Gelb, Rot und Grün wechseln. Da die Methode von einem Thread einmal pro Sekunde aufgerufen wird, wechseln unterschiedliche Buchstaben und Hintergrundblöcke jeweils einmal pro Sekunde ihre Farbe.
Nur woran liegt das?