Java swing 如何让垂直滚动条始终在最下面

 我来答
成功又澄澈的国宝2182
2017-09-30 · TA获得超过470个赞
知道答主
回答量:410
采纳率:0%
帮助的人:194万
展开全部
实现:
(1)设置JTextPane 的策略

DefaultCaret caret = (DefaultCaret)resultTextPane.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

(2)当JTextPane 动态增加内容时

resultTextPane.setSelectionStart(resultTextPane.getText().length());
JScrollBar vertical = scrollPane.getVerticalScrollBar();
vertical.setValue( vertical.getMaximum());

说明:
(1)resultTextPane 的类型是JTextPane;
(2)JTextPane和JTextArea的区别:
JTextPane 可以设置html样式;
JTextArea无法设置成为html样式
Zhao2345678910
2018-05-08
知道答主
回答量:8
采纳率:66%
帮助的人:4643
展开全部
如果JScrollPane内是JTextArea,滚动条与光标位置同步,可编辑的JTextArea无需处理;
如果JScrollPane内是JPanel等无光标组件,可用以下代码:
JScrollPane jspane;
...
jspane.setVisible(false);//注意JScrollPane内面板添加组件后需JScrollPane设置setVisible值才显示改变后样子
new Thread() {
public void run() {
try {
TimeUnit.MILLISECONDS.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//注意不能直接执行下两步,获取滚动棒获取的是上一次的,直接设置的滚动条也是按上一次,会导致总是显示倒数第二行!需等待一段时间才能获取这次滚动棒长度
JScrollBar jscrollBar = jspane.getVerticalScrollBar();
if (jscrollBar != null)
jscrollBar.setValue(jscrollBar.getMaximum());//设置滚动条显示位置为滚动棒最大位置处
}
}.start();
jspane.setVisible();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式