永发信息网

java.swing.JScrollPane中改变内容时怎么能让垂直向的滚动条保持在上次用户拉到的位置?

答案:2  悬赏:60  手机版
解决时间 2021-11-20 08:28
现在当改变ViewportView中的控件内容时如果超过了JScrollPane的视图大小会显示滚动条,并且垂直向的滚动条会直接拉到最下面,如何设置使垂直向的滚动条保持在上次用户拉到的位置?
比如我setViewportView(JEditorPane content); ,当我content.setText("一个很多内容的HTML");时会出垂直向的滚动条,并且该滚动条会拉到最下方,但是之前用户可能将滚动条拉到了中间,如何使滚动条依然保持在原位?
最佳答案
你需要用JScrollBar来进行控制,可参考:
http://blog.csdn.net/nonetracer/article/details/6048929;

刚针对JTextArea,用上述方法测试了一下,发现没有效果。跟踪源码,发现方法本身是有效的。但是,JScrollBar主动设置value方法,会被BasicScrollPaneUI的syncScrollPaneWithViewport()方法中,所调用的JScrollBar的setValues()方法冲掉。
因此,JScrollBar的setValue()方法理论上能解决你的问题,但使用时还需要一些取巧或者其他处理
全部回答
1 换look&feel try { uimanager.setlookandfeel("com.sun.java.swing.plaf.nimbus.nimbuslookandfeel"); } catch (throwable e) { e.printstacktrace(); } 2 使用javafx,可以使用css自定义。 如果只改变颜色就如上所说了,要想改变样式,需要,自己写 一个类继承 metalscrollbarui或者其他scrollbarui的类比如mymetalscrollbarui 然后再你要调用jscrollpane之前,uimanager.put("scrollbarui", "mymetalscrollbarui"); 这样就行了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
好的作文(有开头有结尾有好词好句各5个的)
为什么企业的应用系统中用 PHP 较少,而 Java
甘姓在清朝发生了什么历史事?
西葫芦鸡蛋包子味道是苦的为什么
东方爱婴(墨玉路店)地址在什么地方,我要处理
misnob反应后处理如何除去DEAD的副产物
神像挂在客厅什么位置再宜
23个生母是什么
怎样用sql语句判断一个字段中是否含有换行符?
高铁需要燃油么
关于汽车CD机
请问19岁年龄小吗?
在商场开一家儿童游乐场赚钱吗
玩麻将中发白算一出么
我望月亮一分钟,月亮就望我一生是什么歌
推荐资讯
当今社会是怎样看待高分低能的?
我有张信用卡,比如我上期账单欠了3000元。这
刚抱回家2天的英短,大概2个月多一点.
2015年5月份合肥到长沙的高铁是从哪个车站坐
在EXCEL中,设定第31行中不能输入重复的数值.
数字935算感情
截水帷幕三轴和双轴价格差多少
雅马哈150能不能改装182
北京万宝龙专卖店(翠微大厦)地址在什么地方
以换一种思考方式为题的600左右作文
电动车电池一样大伏数不一样,有什么区别?
请教关于明锐自动挡变速箱“学习功能”问题
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?