我正在使用JTexPane
显示一些文本,其中包括需要突出显示的部分。如何正确填充空格?
import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
public class test2 {
public static void main(String[] args) {
final JTextPane textPane = new JTextPane();
textPane.setContentType("text/html");
textPane.setText("<html>" + text.replaceAll("\\n", "<br/>").replaceAll(" ", " ").replaceAll("\\t", " ") + "</html>");
StyledDocument doc = textPane.getStyledDocument();
SimpleAttributeSet sas = new SimpleAttributeSet();
StyleConstants.setForeground(sas, Color.blue);
doc.setCharacterAttributes(0, text.length(), sas, false);
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame("Test");
frame.setPreferredSize(new Dimension(900, 800));
frame.getContentPane().add(textPane);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
});
}
static String text = "\n" +
"\n" +
" pop12 2014-01-12 just a padded text\n" +
" line 2\n" +
" line 3 \n";
}
显示以下内容:
最佳答案
您可以尝试定义默认的制表位大小,如此处http://java-sl.com/tip_default_tabstop_size.html所述
或者,您可以通过setParagrahAttributes()为段落添加自定义TabSet(选项卡数组)