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