栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在JScrollPane中实现位置敏感缩放?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在JScrollPane中实现位置敏感缩放?

经过测试,似乎可以…

private void updatePreferredSize(int n, Point p) {    double d = (double) n * 1.08;    d = (n > 0) ? 1 / d : -d;    int w = (int) (getWidth() * d);    int h = (int) (getHeight() * d);    preferredSize.setSize(w, h);    int offX = (int)(p.x * d) - p.x;    int offY = (int)(p.y * d) - p.y;    setLocation(getLocation().x-offX,getLocation().y-offY);    getParent().doLayout();}

更新资料

这是一个解释:该点

p
是鼠标相对于的位置
FPanel
。由于您正在缩放面板的尺寸,因此
p
(相对于面板的尺寸)的位置将以相同的比例缩放。通过从缩放位置减去当前位置,您可以获得调整面板大小时点“移动”了多少。然后,只需在相反方向上将滚动窗格中的面板位置移动相同的量,然后
p
放回鼠标光标下方即可。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/494843.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号