Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从JTextPane获取特定样式的所有文本_Java_Swing_Jtextpane - Fatal编程技术网

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

Java 从JTextPane获取特定样式的所有文本,java,swing,jtextpane,Java,Swing,Jtextpane,我有一个JtextPane,它有style1、style2等。我想检索文本窗格中插入style1的所有文本 有办法做到这一点吗 编辑我要完成的任务: 我有一个客户端,它从服务器接收不同的消息类型。我有一个“调试”窗口,将每条消息记录到JTextPane。该窗口具有一组对应于每种消息类型的JRadioButton。用户可以勾选按钮以查看从服务器发送的特定类型的消息。,您可以调用getStyle(String stylename)以获取JTextPane的样式 您可能需要构建这样的方法来选择所需的文

我有一个JtextPane,它有
style1
style2
等。我想检索文本窗格中插入
style1
的所有文本

有办法做到这一点吗

编辑我要完成的任务:

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

,您可以调用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

}
public ArrayList getAllOfOneStyle(String inStyle){
ArrayList strAL=新的ArrayList();
if(jtextpane_01.getStyle(inStyle)!=null){
strAL.add(jtextpane_01.getText());
}
//对每个JTextPane执行此操作
}

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


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

如果样式1、2等是属性,则循环遍历所有JTextPane对象应该很简单,并且只从具有该属性的JTextPane中拾取消息,对吗?不确定如何循环JTextPane。我可以遍历每个字符并对该字符调用
getAttributes()
,但这将返回一个AttributeSet。如何从AttributeSet转换为
样式
您可以在设置样式的位置发布代码吗?您可能需要构建一个方法,通过逐个检查来“循环”每个JTextPane