java 实现鼠标滚轮对图像的缩放

用2G绘制一个图形,然后让它可以随着鼠标的滚动来回放大缩小。。有代码更好,非常感谢!我指的是图像,不是图片。。。。Graphics2Dg=(Graphics2D)g1;/... 用2G绘制一个图形,然后让它可以随着鼠标的滚动来回放大缩小。。有代码更好,非常感谢!
我指的是图像,不是图片。。。。
Graphics2D g = (Graphics2D) g1;
// 创建离屏图像
BufferedImage image = new BufferedImage(167,167,BufferedImage.TYPE_INT_RGB);
Graphics2D ig = image.createGraphics(); // 获取用于绘制它的图形
ig.setColor(Color.GREEN);
ig.fillRect(0, 0, 167,167);//填充指定的矩形。

使这个图像随着鼠标滚轮放大缩小,
展开
 我来答
百度网友ac47f2d
推荐于2016-02-17 · TA获得超过372个赞
知道小有建树答主
回答量:283
采纳率:0%
帮助的人:93.2万
展开全部
给你个实例吧
public class Anniu extends JFrame implements MouseWheelListener {

private static final long serialVersionUID = 1L;

JLabel jl = null;
ImageIcon image = new ImageIcon("F://12.jpg");
public Anniu() {

}

public void init() {
setLayout(null);

jl = new JLabel(image);
setSize(800, 600);
jl.setBounds(300, 200, 200, 200);
add(jl);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addMouseWheelListener(this);
setVisible(true);
}

@Override
public void mouseWheelMoved(MouseWheelEvent e) {
// TODO Auto-generated method stub
int num = e.getWheelRotation();
int x = (this.getWidth() - jl.getWidth()) / 2;
int y = (this.getHeight() - jl.getHeight()) / 2;
int width=jl.getWidth()+ 2 * num;
int height=jl.getHeight()+ 2 * num;
jl.setIcon(new ImageIcon( image.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH))); //重点1:按所给的大小来设置图片,不管图片有多大,总是全图显示,可能导致失真!你可以加一个大小限制,超过图片大小了则不再放大。
jl.setBounds(x + num, y + num, width, height);
this.repaint(); //刷新屏幕
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式