hey, ich hab mal wieder ne frage
ich hab ein problem damit, ein bild in eine jcomponent zu zeichnen ohne dass ich dabei die paintComponent()-methode aufrufe.
hier etwas genauer:
ich habe mir zuerst ein bufferedimage erstellt:
BufferedImage bi = new BufferedImage(600, 450, BufferedImage.TYPE_INT_ARGB);
um danach in dieses bild zu zeichnen:
public void renderBild() {
Graphics2D g = bi.createGraphics();
g.drawImage(bild, 0, 0, null); //bild wurde bereits an einer anderen stelle definiert
}
und jetzt zu meinem problem:
ich möchte dieses bild direkt in die JComponent klasse zeichnen (die klasse, in der dieser code steht erbt von JComponent)
das kann ich zum einen mit
paintComponent(Graphics g2) {
g2.drawImage(bi, 0, 0, null);
}
machen. ich möchte dies aber nicht über die paintComponent-methode machen sonder über die renderbild methode. theoretisch kommt man mit getGraphics() an das grafics-objekt, praktisch nein ;-)
füge ich die zeilen
Graphics g2 = getGraphics();
g2.drawImage(bi, 0, 0, null);
an das ende der renderbild()-methode ein, gibt es eine NullPointerException.
anders ausgedrückt: wie komme ich an das Graphics-objekt der paintComponent() methode (getGraphics() funktioniert nicht)?
ich hoffe ihr könnt mein problem nachvollziehen und könnt mir helfen den code so umzuschreiben, dass ich keine paintComponent() methode brauche ;-)
schonmal danke,
mfg root
ich hab ein problem damit, ein bild in eine jcomponent zu zeichnen ohne dass ich dabei die paintComponent()-methode aufrufe.
hier etwas genauer:
ich habe mir zuerst ein bufferedimage erstellt:
BufferedImage bi = new BufferedImage(600, 450, BufferedImage.TYPE_INT_ARGB);
um danach in dieses bild zu zeichnen:
public void renderBild() {
Graphics2D g = bi.createGraphics();
g.drawImage(bild, 0, 0, null); //bild wurde bereits an einer anderen stelle definiert
}
und jetzt zu meinem problem:
ich möchte dieses bild direkt in die JComponent klasse zeichnen (die klasse, in der dieser code steht erbt von JComponent)
das kann ich zum einen mit
paintComponent(Graphics g2) {
g2.drawImage(bi, 0, 0, null);
}
machen. ich möchte dies aber nicht über die paintComponent-methode machen sonder über die renderbild methode. theoretisch kommt man mit getGraphics() an das grafics-objekt, praktisch nein ;-)
füge ich die zeilen
Graphics g2 = getGraphics();
g2.drawImage(bi, 0, 0, null);
an das ende der renderbild()-methode ein, gibt es eine NullPointerException.
anders ausgedrückt: wie komme ich an das Graphics-objekt der paintComponent() methode (getGraphics() funktioniert nicht)?
ich hoffe ihr könnt mein problem nachvollziehen und könnt mir helfen den code so umzuschreiben, dass ich keine paintComponent() methode brauche ;-)
schonmal danke,
mfg root
Comment