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