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中的插入符的位置移动到文本的末端!
}
java中JTextPane使输出字符到指定的宽度换行,并将垂直滚动条的位置移动到输出的最后位置的更多相关文章
- java中全角半角字符的相互转换的代码
如下内容是关于java中全角半角字符的相互转换的内容.package com.whatycms.common.util; import org.apache.commons.lang.StringUt ...
- 弄清java中的字节与字符
问题 在java中,一个字符等于多少字节? 或者更详细的问:在java中,一个英文字符等于多少字节?一个中文字符等于多少字节? 答案 Java采用unicode来表示字符,java中的一个char是2 ...
- java中如何使正在运行中的线程退出
终止线程的三种方法 有三种方法可以使终止线程. 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止. 2. 使用stop方法强行终止线程(这个方法不 ...
- Java中的流(3)字符流-Reader和Writer
java中提供了处理以16位的Unicode码表示的字符流的类,即以Reader和Writer 为基类派生出的一系列类. 1.Reader和Writer 这两个类是抽象类,只是提供了一系列用于字符 ...
- Java中的字节,字符与编码,解码
ASCII编码 ASCII码主要是为了表示英文字符而设计的,ASCII码一共规定了128个字符的编码(0x00-0x7F),只占用了一个字节的后面7位,最前面的1位统一规定为0. ISO-8859-1 ...
- Java中如何输入一个字符
今天在QQ群上看见有人问如何在Java中输入一个字符的问题. 查了下有以下三种方法吧: char c = new java.util.Scanner(System.in).next().charAt( ...
- Java中如何判断一个字符是否是字母或数字
使用Java中Character类的静态方法: Character.isDigit(char c) //判断字符c是否是数字字符,如‘1’,‘2’,是则返回true,否则返回false Chara ...
- JAVA中的字节流与字符流
字节流与字符流的区别? 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用 ...
- Java中的字节流,字符流,字节缓冲区,字符缓冲区复制文件
一:创建方式 1.建立输入(读)对象,并绑定数据源 2.建立输出(写)对象,并绑定目的地 3.将读到的内容遍历出来,然后在通过字符或者字节写入 4.资源访问过后关闭,先创建的后关闭,后创建的先关闭 ...
随机推荐
- Android模拟器配置
// 检查连接设备,为了保证运行正常,只能留一个连接设备 adb devices
- PHP类与面向对象(二)
构造函数和析构函数 构造函数PHP 5 允行开发者在一个类中定义一个方法作为构造函数.具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作.如果子类中定义了构造 ...
- bzoj 1858: [Scoi2010]序列操作
1858: [Scoi2010]序列操作 Time Limit: 10 Sec Memory Limit: 64 MB 线段树,对于每个区间需要分别维护左右和中间的1和0连续个数,并在op=4时特殊 ...
- C# 串口操作 ---- 系列文章
C# 串口操作系列(5)--通讯库雏形 通讯库雏形的建立. 串口通讯介绍的高级篇,介绍更高级的抽象,为扩展为通用的客户端通讯库做铺垫,扩展性的考虑,能支持任意类型的流设备. ... 2010-08-0 ...
- Python学习笔记(4):自定义时间类
Python的时间我实在无法接受,太难用了.我觉得C#的时间就非常完美,简单.好用.所以,自定义了自己的时间类: 用法: 一个小小的应用,我需要取出每天股市交易的分钟段,开始是这样的: 稍微改进一下, ...
- //暴力打开某个APP iOS 私有API LSApplicationWorkspace
//暴力打开某个APP = .= 如果可以打开.直接打开不解释 +(BOOL)isOpenApp:(NSString*)appIdentifierName { Class LSApplicationW ...
- raid性能对比
1,raid0的特性:采用剥离,数据将在几个磁盘上进行分割.数据被分成很多数据块,每一数据块会被写入不同的磁盘.从而, 每一磁盘的工作负荷都得到了降低,这有助于加速数据传输.RAID-0可让磁盘更好地 ...
- Java线程与Linux内核线程的映射关系[转]
Linux从内核2.6开始使用NPTL (Native POSIX Thread Library)支持,但这时线程本质上还轻量级进程. Java里的线程是由JVM来管理的,它如何对应到操作系统的线程是 ...
- Grunt 新手指南
导言 作为一个正在准备从java 后端转大前端,一直都有想着,在js 的世界里面有没有类似于maven或者gradle 的东西..然后,就找到了grunt 这玩意 Grunt是用来干什么的 诸如ant ...
- mac os x安装ngigx+php fastcgi+mysql+memcache详细流程
Part 1: MacPorts Mac上装软件常用的是MacPorts和homebrew,这个软件会很方便地提供软件的安装.装这些前先得装Xcode,Xcode在appstore上有,一个多G,下载 ...