Como faço para obter um JEditorPane para realçar a largura total de uma linha (não apenas o texto)?

votos
4

Eu estou tentando obter um JEditorPane para realçar a largura total de uma linha exibida. Todos os exemplos que eu tentei única destacar o conteúdo textual. Por exemplo, se eu tiver conteúdo, como este:

 ---------------------------------
|Here is some text                |
|some more text                   |
 ---------------------------------

dentro de um JEditorPane representado pelo quadro acima, em seguida, com destaque para os primeiros destaques linha apenas o 'Aqui está algum texto' (representada entre [e] abaixo).

 ---------------------------------
[Here is some text]               |
|some more text                   |
 ---------------------------------

Eu gostaria que destacar a largura total da JEditorPane como o seguinte:

 ---------------------------------
[Here is some text                ]
|some more text                   |
 ---------------------------------

Existe uma maneira de fazer isso?

Publicado 09/12/2008 em 18:03
fonte usuário
Em outras línguas...                            


2 respostas

votos
4

Isso não parece muito complicado. Gostaria que um pouco de fazer code-desafio .

Basta criar o seu próprio Marcador personalizado, estendendo DefaultHighlighter.

Substituir o paint()método, e simplesmente deixar inalterada a largura da pintura retângulo: será a largura do painel.

Você vai encontrar em DZone Snippets um exemplo completo : copiá-lo e executá-lo. Diga-me se é isso que você está depois. Ele inclui a textPane.setSelectionColor(new Color(1.0f, 1.0f, 1.0f, 0.0f));adição você menciona em sua resposta.

texto alt http://www.freeimagehosting.net/uploads/94a3a990e4.png

Respondeu 09/12/2008 em 22:23
fonte usuário

votos
1

Para impedir a selecção destacando de interferir com solução de VonC I adicionado a seguinte linha para o construtor TextHighlight (essencialmente fazendo o destaque selecção invisível):

textPane.setSelectionColor(new Color(1.0f, 1.0f, 1.0f, 0.0f));
Respondeu 11/12/2008 em 16:52
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more