Я использую затмение, и у меня есть JPanel внутри scrollPane.
Я пытаюсь увеличивать и уменьшать масштаб, используя метод масштабирования (z, z), где z - это величина, по которой я хочу масштабировать. Это работает, но фокус - источник, когда я хочу, чтобы это было середина экрана. Я пытался использовать функцию translate (), но это не работает должным образом.
Я создал функцию для регулировки полос прокрутки, но это не происходит гладко.
Есть ли способ заставить его сфокусироваться в середине экрана?
вот мой код, если это поможет:
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2= (Graphics2D) g;
double z = WindowTester.getZoomFactor();
zoom(g2,z);
for(int i = 0; i < points.size(); i++) {
g2.drawOval(points.get(i).x-5, points.get(i).y-5, 10, 10);
}
g2.drawLine(5, 5,(int) Math.round(this.width-5*z), 5);
g2.drawLine((int) Math.round(this.width-5*z), 5,(int) Math.round(this.width-5*z), (int) Math.round(this.height-5*z));
g2.drawLine((int) Math.round(this.width-5*z), (int) Math.round(this.height-5*z), 5,(int) Math.round(this.height-5*z));
g2.drawLine(5, (int) Math.round(this.height-5*z), 5, 5);
}
public void zoom(Graphics2D g2,double z) {
g2.scale(z, z);
this.setPreferredSize(new Dimension((int) Math.round(width*z),(int) Math.round(height*z)));
}