Hi, ich weiß dazu gibts schon zig Threads, aber ich dreh hier gleich am Rad. Warum hat dieser Code den gewünschten Effekt (ein Image auf ein anderes Zeichnen)
während dieser Code nicht funktioniert, sondern nur nochmal das selbe Image an der Stelle einfügt, an der eigentlich ein anderes erschienen sollte.
Code:
else if (source == paste) {
curImg = new BufferedImage(old.getWidth(), old.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D comp2D = curImg.createGraphics();
comp2D.drawImage(old, 0, 0, null);
comp2D.drawImage(shownImg, posX3, posY3, null);
comp2D.dispose();
// abgleichen();
pic.setIcon(new ImageIcon(curImg));
clipb = false;
paste.setEnabled(false);
pasteA.setEnabled(false);
cut.setEnabled(true);
copy.setEnabled(true);
cut.setSelected(true);
}
während dieser Code nicht funktioniert, sondern nur nochmal das selbe Image an der Stelle einfügt, an der eigentlich ein anderes erschienen sollte.
Code:
else if (source == paste) {
curImg = new BufferedImage(old.getWidth(), old.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D comp2D = curImg.createGraphics();
comp2D.drawImage(old, 0, 0, null);
comp2D.drawImage(shownImg, posX3, posY3, null);
comp2D.dispose();
abgleichen();
// pic.setIcon(new ImageIcon(curImg));
clipb = false;
paste.setEnabled(false);
pasteA.setEnabled(false);
cut.setEnabled(true);
copy.setEnabled(true);
cut.setSelected(true);
}
void abgleichen() {
shownImg = new BufferedImage(curImg.getWidth(), curImg.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D comp2D = shownImg.createGraphics();
comp2D.drawImage(curImg, 0, 0, null);
comp2D.dispose()
pic.setIcon(new ImageIcon(shownImg));
}