使用JTextPane代替JTextArea实现每一行的字的颜色不一样

来源:互联网 发布:手机剪切mp3软件 编辑:程序博客网 时间:2024/05/21 14:58

 

import java.awt.BorderLayout;import java.awt.Color;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTextPane;import javax.swing.text.BadLocationException;import javax.swing.text.Style;import javax.swing.text.StyleConstants;public class TestJTextPane extends JFrame {   private JTextPane textPane = new JTextPane();       public TestJTextPane () {      this.add(new JScrollPane(textPane), BorderLayout.CENTER);      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      this.setSize(800, 600);      this.setLocationRelativeTo(null);        Style def = textPane.getStyledDocument().addStyle(null, null);        StyleConstants.setFontFamily(def, "verdana");        StyleConstants.setFontSize(def, 12);        Style normal = textPane.addStyle("normal", def);        Style s = textPane.addStyle("red", normal);        StyleConstants.setForeground(s, Color.RED);        textPane.setParagraphAttributes(normal, true);            for(int i=0; i<1000; i++){           try {            textPane.getDocument().insertString(textPane.getDocument().getLength(),                  "hello, ", textPane.getStyle(i%2 == 0 ? "red" : "normal"));         } catch (BadLocationException e1) {         }      }   }      public static void main(String[] args) {      new TestJTextPane().setVisible(true);   }}


 

原创粉丝点击