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中的插入符的位置移動到文本的末端! }
?