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

本文介绍了一个使用Java Swing中的JTextPane组件来显示带样式的文本的应用实例。该程序通过设置字体、颜色等样式属性实现了交替显示红色和其他默认颜色的文字,展示了如何在JTextPane中插入带有特定样式的字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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);
   }

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值