JScrollPane 滚动处理

举报
风吹稻花香 发表于 2021/06/05 00:47:54 2021/06/05
【摘要】 JScrollPane 获取与设置位置正确: jScrollPane.getViewport().getViewPosition() 别的都不对, JScrollPane 监听 JScrollBar bar = srrollPane.getVerticalScrollBar();// 返回控制视口垂直视图位置的垂直滚动条 ...


JScrollPane 获取与设置位置正确:
jScrollPane.getViewport().getViewPosition()

别的都不对,



JScrollPane 监听


   JScrollBar bar = srrollPane.getVerticalScrollBar();// 返回控制视口垂直视图位置的垂直滚动条
 bar.getPreferredSize();
 bar.addAdjustmentListener(new AdjustmentListener() { @Override
 public void adjustmentValueChanged(AdjustmentEvent e) {

// srrollPane= (JScrollPane) evt.getSource();
 Point p = srrollPane.getViewport().getViewPosition();
 System.out.println("position2:"+p.getY());

 } });// 监听滚动条模型发生更改

srrollPane.getViewport().getHeight()

当var设置为Never时,

jScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);

屏幕可见高度:

vbar.getVisibleAmount()

可以滚动高度为:totalHeight,滚动条子控件的总高度-屏幕可见高度,就是可以滚动总高度

下面是滚动设置方法:

JScrollBar vbar = jScrollPane.getVerticalScrollBar();// 返回控制视口垂直视图位置的垂直滚动条
String aa = jScrollPane.getHeight() + " " + vbar.getVisibleAmount() + " " + jScrollPane.getVisibleRect().getHeight() + " ";
double totalHeight = backgroundPanel.getPreferredSize().getHeight() - vbar.getVisibleAmount();//-vbar.getHeight()-jScrollPane.getVerticalScrollBarPolicy()*0.5;

ylocation = ylocation * totalHeight;

if (ylocation < totalHeight) { Point target = jScrollPane.getViewport().getLocation();
 target.setLocation(target.getX(), ylocation);
 jScrollPane.getViewport().setViewPosition(target);
}

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/72975544

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。