Preciso ler o conteudo de um arquivo rtf (com suas devidas formatações), e inserir este texto em um componente (JTextArea , JTextPane) também aparecendo de maneira formatada.
Alguma idéia ?
Tive olhando a api RTFEditorKit, mas não entendi seu funcionamento, procuro algum tutorial a respeito desta api. Ou mesmo indica outra api ou classe ?
Consegui uma classe aki na Web, que consegue ler os arquivos RTF, entretanto a formatação ( negrito, tamanho de letra eh perdida ).
Não sei se isto se deve a classe ou ao componente JTextArea.
Abaixo segue o código da classe RTFParser que faz a leitura do arquivo.
publicStringgetConteudo(){Filef=newFile(this.enderecoRecurso);FileInputStreamis=null;try{is=newFileInputStream(f);}catch(IOExceptione){System.out.println("ERRO: "+e.getMessage());returnnull;}StringbodyText=null;DefaultStyledDocumentstyledDoc=newDefaultStyledDocument();try{newRTFEditorKit().read(is,styledDoc,0);bodyText=styledDoc.getText(0,styledDoc.getLength());}catch(IOExceptione){return"ERRO: Impossível extrair o texto do Documento RTF. Excepção: "+e;}catch(BadLocationExceptione){return"ERRO: Impossível extrair o texto do Documento RTF. Excepção: "+e;}returnbodyText;}
A classe onde os arquivos são utilizados tem a seguinte estrutura.
publicvoidcarregaDados(Stringarq){Stringlinha=" ";RtfParserp=newRtfParser();if(arq.equalsIgnoreCase("hist")){p.setEnderecoRecurso("historico.rtf");linha=p.getConteudo();// System.out.println(linha);jTextArea1.setText(linha);jTextArea1.setCaretPosition(0);this.setTitle(" Histórico do SCAM ");// Segue abaixo
Alguém tem alguma idéia de como conservar a formatação do texto durante este processo ?