Я обычно задавал эти вопросы на испанском языке Stackoverflow, но мой вопрос не получил ответа.Так что я собираюсь попробовать на этом сайте в первый раз.У меня возникла проблема при повороте изображения на Java (изображение никогда не закрашивается, ни первый вызов paintComponent(...)
).
img2
закрашивается, но img
, то есть изображение, которое яне хочу вращаться.Я впервые работаю с BufferedImage
.Я посмотрел несколько примеров, но, возможно, в этом проблема.
Я действительно не знаю, в чем ошибка.Мой код следующий:
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
Graphics2D g2d1 = (Graphics2D) g;
Image img2 = new ImageIcon(getClass().getResource("/imagenes/fondoMapaPirata(Prueba).jpg")).getImage();
g2d.drawImage(img2, 30, 30, this);
BufferedImage img;
try {
img = ImageIO.read(new URL("/imagenes/canon(Prueba).jpeg"));
g2d1.rotate(alfa);
double locationX = img.getWidth(this) / 2;
double locationY = img.getHeight(this) / 2;
AffineTransform tx = AffineTransform.getRotateInstance(alfa, locationX, locationY);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
g2d1.drawImage(op.filter(img, null), 335, 730, this);
} catch (MalformedURLException ex) {
Logger.getLogger(PanelCanon.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(PanelCanon.class.getName()).log(Level.SEVERE, null, ex);
}
}
Я видел другие вопросы в SO, связанные с моими, но, похоже, я делаю это правильно.Может быть, есть проблема при создании двух экземпляров graphics2D, я не уверен.¿Кто-нибудь может мне помочь?