java中JTextPane使输出字符到指定的宽度换行,并将垂直滚动条的位置移动到输出的最后位置

简介:

SimpleAttributeSet set = new SimpleAttributeSet();
 Document doc = tp.getStyledDocument(); 
 FontMetrics fm = tp.getFontMetrics(tp.getFont());//得到JTextPane 的当前字体尺寸
 int paneWidth = tp.getWidth();//面板的宽度
 String text = new String(bt, 0, len); 
        try
              {
                  for(int i = 0, cnt = 0; i < text.length(); ++i){
                      if((cnt += fm.charWidth(text.charAt(i))) >= paneWidth){//当属出字符的宽度大于面板的宽度时换行,也就是达到JTextPane不会出现水平的滚动条
                          cnt = 0;
                          doc.insertString(doc.getLength(), "\n", set);
                          continue;
                      }
                      doc.insertString(doc.getLength(), String.valueOf(text.charAt(i)), set);
                  }
                  doc.insertString(doc.getLength(), "\n", set);
                  
                  tp.setCaretPosition(doc.getLength());//最简单的设置滚动条的位置到最后输出文本的地方
                                                         //就是将JTextPane中的插入符的位置移动到文本的末端!
              }

目录
相关文章
|
Web App开发 Java Python
Java selenium操作下拉滚动条的几种方法
数据采集中,经常遇到动态加载的数据,我们经常使用selenium模拟浏览器操作,需要多次下拉刷新页面才能采集到所有的数据,就此总结了几种selenium操作下拉滚动条的几种方法我这里演示的是Java版本的,使用chromedriver,当然你可以换成python或其他语言,浏览器用firefox或者phantomjs(无头浏览器),大部分都是适用的,不同浏览器有略微的差异。
8384 0
java77-GUL下拉菜单框和滚动条
java77-GUL下拉菜单框和滚动条
73 0
java77-GUL下拉菜单框和滚动条
|
Java
Java开发GUI之滚动条
Java开发GUI之滚动条
426 0
|
Java Maven
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
1737 0
|
Java
java中如何将JScrollPane的垂直滚动条自动移动到最下端
                            JPanel QQP = new JPanel();              JScrollPane jsp = new JScrollPane(QQP);              JScrollBar jsb = jsp.getVerticalScrollBar(); QQP.updateUI();//利用当前外观的值重置 UI 属性。
732 0
|
3天前
|
监控 安全 Java
在 Java 中使用线程池监控以及动态调整线程池时需要注意什么?
【10月更文挑战第22天】在进行线程池的监控和动态调整时,要综合考虑多方面的因素,谨慎操作,以确保线程池能够高效、稳定地运行,满足业务的需求。
71 38
|
22小时前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?