从JTextPane获取特定样式的所有文本

时间:2014-06-02 15:38:20

标签: java swing jtextpane

我有一个JtextPane,其中包含style1style2等。我想检索已插入style1的textPane中的所有文字。

有办法做到这一点吗?

编辑我正在努力实现的目标:

我有一个客户端从服务器接收不同的MessageTypes。我有一个“调试”窗口,将每条消息记录到JTextPane。该窗口有一组对应于每种消息类型的JRadioButtons。用户可以检查按钮以查看从服务器发送的特定消息类型。

2 个答案:

答案 0 :(得分:1)

您可以定义自己的属性并将其与所有其他属性放在一起。只需使用SimpleAttributeSet并在那里放置新属性(让我们将其命名为“MessageTypeAttribute”),该值可以是每个所需类型的字符串常量。

迭代Document使用getCharacterElement()方法。从0开始,然后移动到元素的结束偏移量以检索下一个元素。

答案 1 :(得分:0)

Looking at the documentation,您可以调用getStyle(String stylename)来获取JTextPane的样式。

您可能想要构建一个这样的方法来选择您想要的文本

public ArrayList<String> getAllOfOneStyle( String inStyle ){
   ArrayList<String> strAL = new ArrayList<String>(); 
   if( jtextpane_01.getStyle(inStyle) != null ){
      strAL.add( jtextpane_01.getText() );
   }

   // do this for each JTextPane

}