У меня проблема с функцией масштабирования в программе.Вот сделка, я получил холст, который расширяет jpanel и на нем нарисована сетка.Моя проблема заключается в том, как реализовать функцию масштабирования.При увеличении jpanel каждый маленький квадрат на сетке будет разделен на 3x3.
Я пытался сделать 3-х панельное увеличение, 3-х панелей 3-х разных размеров с разным делением на сетке, но это занимает много памяти и времени выполнения.Я реализую только 1 jpanel с фиксированным размером и увеличу его, используя Graphics2d.scale (...), но, похоже, смещение координат мыши и jpanel.Я знаю, что это можно исправить, но другая моя проблема - jpanel реализован с помощью jscrollpane.Исправление смещения координат решит эту проблему, я не пробовал, потому что не знаю, как.
рисовать в jpanel, рисуя сетку
public void paint(Graphics g){
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
int x=0;int y=0;
g2.setColor(Color.GRAY);
for(int i=1; i<this.divisions; i++){
x = i *divSize;
g2.drawLine(x, 0, x, this.size);
}
for(int i=1; i<this.divisions; i++){
y = i *divSize;
g2.drawLine(0, y, this.size, y);
}
/*code for filling the small squares with colors*/
}