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

简介: <div class="markdown_views"><p>Java swing 如何让垂直滚动条始终在最下面 <br>见图说话: <br><img src="http://img.blog.csdn.net/20150607121654423" alt="swing 界面" title=""></p><p>上图中箭头所指的是一个JTextPane <br>JTex

Java swing 如何让垂直滚动条始终在最下面
见图说话:
swing 界面

上图中箭头所指的是一个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());

说明:
(1)resultTextPane 的类型是JTextPane;
(2)JTextPane和JTextArea的区别:
JTextPane 可以设置html样式;
JTextArea无法设置成为html样式

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

依赖的jar包:
依赖包

相关文章
|
存储 IDE Java
漂亮不是梦!Java Swing美化攻略
Java Swing 是一个为 Java 设计的 GUI 工具包,提供文本框、按钮等组件。尽管其外观可定制,通过 Look and Feel(LAF)机制改变应用风格,如 Darcula 和 FlatLaf,但现已淡出主流视野,主要应用于 IDE 领域,如 IntelliJ IDEA 和 Eclipse。相比其他 GUI 框架,Swing 的发展前景有限。
738 1
|
安全 Java API
|
前端开发 Java UED
Java中的图形用户界面编程:Swing与JavaFX的比较与应用
Java中的图形用户界面编程:Swing与JavaFX的比较与应用
1896 0
|
Java 数据安全/隐私保护
利用Java图形化界面组件Swing写一个简易的登录界面
利用Java图形化界面组件Swing写一个简易的登录界面
506 1
|
存储 设计模式 前端开发
[笔记] 疯狂JAVA讲义(第3版)第12章 Swing编程
[笔记] 疯狂JAVA讲义(第3版)第12章 Swing编程
229 0
|
Java Windows
基于java Swing编写扫雷游戏设计实现(已调试)
基于java Swing编写扫雷游戏设计实现(已调试)
244 1
|
Java
JAVA Swing自定义JScorllPanel
JAVA Swing自定义JScorllPanel
181 1
|
Java
Java Swing模拟水波纹扩散效果动画
Java Swing模拟水波纹扩散效果动画
264 6
|
Java
Java Swing 层次面板(JLayeredPanel) Demo
Java Swing 层次面板(JLayeredPanel) Demo
217 0
|
缓存 Java
Java Swing 2D系统属性参数详解
Java Swing 2D系统属性参数详解
170 0