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样式

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值