首页 > 编程语言 > 详细

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

时间:2015-06-12 02:07:37      阅读:237      评论:0      收藏:0      [点我收藏+]

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

(1)JTextPane

见图说话:?
bubuko.com,布布扣
?
上图中箭头所指的是一个JTextPane?

JTextPane 被包在JScrollPane 中

//执行结果显示窗口
        resultTextPane = new AssistPopupTextPane();
        resultTextPane.setContentType("text/html; charset=UTF-8");
        resultTextPane.setEditable(false);
        DefaultCaret caret = (DefaultCaret)resultTextPane.getCaret();
        caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);


        scrollPane.setViewportView(resultTextPane);

?

在接收到推送消息时,JTextPane中的内容会动态的增加,增加到一定程度,会产生垂直滚动条,那么如何使垂直滚动条始终保持在JTextPane 最底部呢??
这样就永远可以看到最新的推送消息了.?
实现:?
(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());

?说明:?

resultTextPane 的类型是JTextPane;?

?

(2)JTextArea

resultTextArea = new AssistPopupTextArea();
		resultTextArea.setEditable(false);
		resultTextArea.setLineWrap(true);
		resultTextArea.setWrapStyleWord(true);
		DefaultCaret caret = (DefaultCaret)resultTextArea.getCaret();
        caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
		scrollPane.setViewportView(resultTextArea);
		resultTextArea.setColumns(10);

?DefaultCaret caret = (DefaultCaret)resultTextArea.getCaret();

? ? ? ? caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

?


注意:JTextPane和JTextArea的区别:?
JTextPane 可以设置html样式;?
JTextArea无法设置成为html样式

?

项目采用maven 构建?
源代码下载地址:?
项目源代码

依赖的jar包:?
依赖包

?

?

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

原文:http://hw1287789687.iteye.com/blog/2219076

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!