在缓冲图像Java上绘制矩形

时间:2018-09-17 16:24:41

标签: java swing graphics graphics2d

我有一个JPanel,我在其中使用BufferedImage绘制了地图图像。我还有一个按钮,当单击该按钮时,将通过在该部分上绘制一个红色矩形来突出显示该地图的一部分。

但是,当我放大图像时,矩形仍保持在原来的位置。我想这背后的原因是在面板上方和图像上方绘制了矩形。

有没有一种方法可以根据缩放来调整矩形的位置?

这是我绘制矩形和图像的方式:

//the variable years[activeIndex] is an array which stores my Buffered Images
  Graphics2D g2=(Graphics2D)g.create();
  g.drawImage( years[activeIndex],0, 0,(int)width,(int)height,null);
  g2.setColor(Color.red);
  g2.setStroke(new BasicStroke(3));
  g2.drawRect(this.getWidth()/2,this.getHeight()/2, 20, 20);
  MapViewer.imagePanel.revalidate();

This is the rectangle when there is no zoom

This is the rectangle with the zoom, it stays in its place because its on the JPanel and not on the BufferedImage

0 个答案:

没有答案