Рисование прямоугольника над буферизованным изображением Java - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть 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();

Это прямоугольник, когда нет увеличения

Это прямоугольник с увеличением, он остается на своем месте, потому что он на JPanel, а не на BufferedImage

...