小编Dan*_*iel的帖子

JScrollPane setViewPosition 在“缩放”之后

我这里的代码使用 MouseAdapter 来监听用户在他们想要放大的图像区域周围“绘制”一个框,并计算该框与图像的比率。然后,它将图像大小调整为计算出的比率。这部分有效。

我遇到的问题是使 JScrollPane 视图看起来好像在调整图像大小后它仍然位于相同的左上角位置。我尝试了几种方法,似乎已经接近我想要的结果,但并不完全准确。

这是查找比例并设置位置的监听器:

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.Graphics;
import java.awt.Point;

import javax.swing.JScrollPane;
import javax.swing.JViewport;
import javax.swing.JComponent;

public class DynamicZoom extends MouseAdapter {

private Point start;
private Point end;
private double zoom = 1.0;
private JScrollPane pane;
private JViewport port;


public void mousePressed(MouseEvent e) {
    if(e.getButton() == MouseEvent.BUTTON1) {
        this.pane = (JScrollPane)e.getSource();
        this.port = pane.getViewport();
        start = e.getPoint();
    }
}

public void mouseReleased(MouseEvent e) {
    if(this.pane != null) {
        Point curr = this.port.getViewPosition();
        end = e.getPoint(); …
Run Code Online (Sandbox Code Playgroud)

java image jscrollpane zooming

2
推荐指数
1
解决办法
5578
查看次数

标签 统计

image ×1

java ×1

jscrollpane ×1

zooming ×1