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

简介:

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

(1)JTextPane

见图说话: 

 
上图中箭头所指的是一个JTextPane 

JTextPane 被包在JScrollPane 中

Java代码   收藏代码
  1. //执行结果显示窗口  
  2.         resultTextPane = new AssistPopupTextPane();  
  3.         resultTextPane.setContentType("text/html; charset=UTF-8");  
  4.         resultTextPane.setEditable(false);  
  5.         DefaultCaret caret = (DefaultCaret)resultTextPane.getCaret();  
  6.         caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);  
  7.   
  8.   
  9.         scrollPane.setViewportView(resultTextPane);  

 

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

Java代码   收藏代码
  1. DefaultCaret caret = (DefaultCaret)resultTextPane.getCaret();  
  2.         caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);  

 

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

Java代码   收藏代码
  1. resultTextPane.setSelectionStart(resultTextPane.getText().length());  
  2.         JScrollBar vertical = scrollPane.getVerticalScrollBar();  
  3.         vertical.setValue( vertical.getMaximum());  

 说明: 

resultTextPane 的类型是JTextPane; 

 

(2)JTextArea

Java代码   收藏代码
  1. resultTextArea = new AssistPopupTextArea();  
  2.         resultTextArea.setEditable(false);  
  3.         resultTextArea.setLineWrap(true);  
  4.         resultTextArea.setWrapStyleWord(true);  
  5.         DefaultCaret caret = (DefaultCaret)resultTextArea.getCaret();  
  6.         caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);  
  7.         scrollPane.setViewportView(resultTextArea);  
  8.         resultTextArea.setColumns(10);  

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

        caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

 


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

相关文章
|
1月前
|
Java 数据安全/隐私保护
利用Java图形化界面组件Swing写一个简易的登录界面
利用Java图形化界面组件Swing写一个简易的登录界面
31 1
|
1月前
|
Java Windows
基于java Swing编写扫雷游戏设计实现(已调试)
基于java Swing编写扫雷游戏设计实现(已调试)
32 1
|
1月前
|
Java
Java Swing模拟水波纹扩散效果动画
Java Swing模拟水波纹扩散效果动画
31 6
|
1月前
|
Java
JAVA Swing自定义JScorllPanel
JAVA Swing自定义JScorllPanel
17 1
|
1月前
|
Java
【Gloomyfish】Java Swing 实现实际大小到全屏切换
【Gloomyfish】Java Swing 实现实际大小到全屏切换
18 1
|
29天前
|
前端开发 Java UED
Java中的图形用户界面编程:Swing与JavaFX的比较与应用
Java中的图形用户界面编程:Swing与JavaFX的比较与应用
|
1月前
|
存储 设计模式 前端开发
[笔记] 疯狂JAVA讲义(第3版)第12章 Swing编程
[笔记] 疯狂JAVA讲义(第3版)第12章 Swing编程
|
1月前
|
Java
Java Swing 层次面板(JLayeredPanel) Demo
Java Swing 层次面板(JLayeredPanel) Demo
17 0
|
1月前
|
缓存 Java
Java Swing 2D系统属性参数详解
Java Swing 2D系统属性参数详解
24 0
|
2月前
|
设计模式 Java 开发者
Java一分钟之-Swing组件:JTable, JTree, JTextArea
本文介绍了Java Swing的三个关键组件:`JTable`、`JTree`和`JTextArea`,用于数据展示和用户输入。`JTable`展示二维数据,如表格;`JTree`展示层次结构数据,如文件系统;`JTextArea`则用于多行文本输入和显示。每个组件都提供了示例代码,并列出常见问题及避免方法,如数据源未设置、滚动面板缺失等。理解并掌握这些组件,能帮助开发者创建高效用户界面。
42 0