E ai GUJ!
Anteriormente criei um tópico com quase o mesmo nome sobre JTextPane com dúvidas. Todas em relação a salvar e carregar arquivos que foram primeiramente editados em JTexPane. Agora a coisa aqui é outra. Ando tentando ainda programar um JTextPane funcional que salve, carregue, adicione imagens e efeitos em um JTextPane (pois acredito que não exista outra classe).
Meu problema, começa na hora de inserção e verificação de estilos no documento. Vejam o meu código de adiconar ou remover o negrito de um JTextPane:
public void setNegrito(JTextPane painel)
{
SimpleAttributeSet atributo = new SimpleAttributeSet();
// Se caracteres estiverem em negrito, ele deixa normal.
if(StyleConstants.isBold(painel.getCharacterAttributes()))
{
StyleConstants.setBold(atributo , false);
}
// Se caracteres não estiverem em negrito, ele deixa em negrito.
else
{
StyleConstants.setBold(atributo , true);
}
painel.setCharacterAttributes(atributo, false);
}
Texto: TESTANDO
Você seleciona o texto acima por completo e adiciona o efeito. Primeiramente o efeito aparentemente funciona. Mas ao selecionar ele, se ele for selecionado da esquerda para a direita e o método for chamado, misteriosamente nada acontece. Porém! (Vejam o absurdo...) Se for selecionado da direita para a esquerda e, o método for chamado, ele deixa de estar em negrito. É como se a verificação não ocorresse do jeito que o usuário quer. E é uma coisa lógica isso! Pelo menos era pra ser...
Agora vejam o código de alterar o tamanho da fonte:public void setTamanhoFonte(JTextPane painel , int tamanho)
{
SimpleAttributeSet atributo = new SimpleAttributeSet();
StyleConstants.setFontSize(atributo , tamanho);
painel.setCharacterAttributes(atributo , true);
}
TESTANDO
TESTANDO
TESTANDO
Agora vamos pegar o terceiro testando e alterar o tamanho de sua fonte para uma fonte maior. Curiosamente funciona! Porém, ao selecionar o texto todo (tudo) do último caractere ao primeiro, uma mágica que eu nunca vi na vida acontece com o programa Java, todos os "TESTANDO" ficam de um tamanho pequeno só indefinido pelo usuário! Inacreditável...
O mesmo ocorre com a alteração de fonte do texto. Se eu deixar um "TESTANDO" com uma fonte e outro com outra e, selecionar tudo, eles ficam com a única fonte original (que estava por padrão).
VAI ENTENDER! Coisa de doido isso.
Estou humildemente aqui implorando a meus caros colegas do GUJ se eles conhecem alguma fonte de estudos sobre o JTextPane que possa me ser útil e de preferência (estou pedindo demais), completa. Que também possa me indicar uma fonte que talvez eu mesmo implemente um EditorKit para leitura e gravação de arquivos (pois o último que peguei aparentemente está com problemas). Preciso de material ou de ajuda. E acreditem, na parte falando sobre Swing no site da Oracle não tem muito sobre isso.
Obrigado a todos pela atenção e, aguardo anciosamente uma resposta.
Litium.
