java 鼠标拖动图形_Java - 通过鼠标拖动滚动图像

本文介绍如何在Java中创建一个HandScrollListener类,该类使得可以通过鼠标拖动来滚动图像。通过添加MouseAdapter,定义鼠标按下、拖动和释放事件处理方法,实现在JScrollPane上移动图像的功能。
摘要由CSDN通过智能技术生成

最后,我自己做了。如果有人需要,这是解决方案:

使用以下代码创建名为HandScrollListener的新类:

import java.awt.Cursor;

import java.awt.Point;

import java.awt.Rectangle;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import javax.swing.JLabel;

import javax.swing.JViewport;

public class HandScrollListener extends MouseAdapter

{

private final Cursor defCursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);

private final Cursor hndCursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);

private final Point pp = new Point();

private JLabel image;

public HandScrollListener(JLabel image)

{

this.image = image;

}

public void mouseDragged(final MouseEvent e)

{

JViewport vport = (JViewport)e.getSource();

Point cp = e.getPoint();

Point vp = vport.getViewPosition();

vp.translate(pp.x-cp.x, pp.y-cp.y);

image.scrollRectToVisible(new Rectangle(vp, vport.getSize()));

pp.setLocation(cp);

}

public void mousePressed(MouseEvent e)

{

image.setCursor(hndCursor);

pp.setLocation(e.getPoint());

}

public void mouseReleased(MouseEvent e)

{

image.setCursor(defCursor);

image.repaint();

}

}然后在你的框架中放:

HandScrollListener scrollListener = new HandScrollListener(label_to_move);

jScrollPane.getViewport().addMouseMotionListener(scrollListener);

jScrollPane.getViewport().addMouseListener(scrollListener);它应该工作!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值