JTextArea para Código Fonte

7 respostas
saoj

Objetivo Final: Obter um componente de texto onde o professor vai digitar um código fonte e os alunos vão acompanhar todas as modificações em tempo real, inclusive highlights de partes do código.

Solução até o momento: JTextArea com DocumentListener (mudanças no texto) e MouseListener (highlights)

Problema: JTextArea é um componente tosco, sem formatação. Digitar código ali é chato e pouco didático. Por algum motivo que eu não me lembro agora JTextPane não funcionou direito.

Sonho: Um componente para digitação de código fonte, com uma formatação básica e uma coloração mínima tb.

Alguém já viu isso em algum lugar ??? Tentei colar do JExt mas não entendi nada.

7 Respostas

D

Olha, eu não sei se te ajuda. Mas o jEdit (http://www.jedit.org) existem componentes relacionados a coloração de sintaxe e coisas do tipo. Dá uma olhada.

Y

Não tenho certeza mas acho que a interface javax.swing.text.Highlighter pode te ajudar.

saoj

Baixei o jEdit e lá tem uma JEditTextArea, mas parece que ela é totalmente dependente de todo o resto do jEdit. :cry:

Estou tentando isolá-la aqui, isto é, construir uma simples JEditTextArea, mas está difícil.

JEditTextArea precisa de um View que precica de um Buffer, que precisa de outra coisa lá, e por aí vai. :cry:

Luca

Olá

Sérgio, explica um pouco mais sobre o que quer fazer. Você quer que tudo que o professor faz no micro dele apareça nos micros dos alunos?

Se for isto talvez pareça com que fez um integrante de minha equipe em outra empresa. Ele escreveu um software em que 2 telas se comunicavam por sockets. Tudo que vc clicava ou digitava em um computador, aparecia no outro porque tudo era ecoado por sockets. Algo meio que um VNC sem usar frame buffer. Para a questão das cores é uma questão de sintonia fina.

Para mostrar os cliques e digitações nas telas dos clientes, a idéia inicial era usar a classe awt.robot que serve para fazer demos e coisas assim. Mas acho que no final nem foi preciso.

[]s
Luca

saoj

Fala Luca,

A questão da comunicação já está resolvida (http://www.smartjava.com.br/lohis.jsp), o problema é estético mesmo. A JTextArea é como um notepad e ficar digitando código ali é muito chato.

Tudo que eu preciso é de um JTextAreaForJavaCode, que formate o meu código bonitinho e faça uma coloração mínima. De repente a formatação eu mesmo posso fazer a medida que for digitando o código, já a coloração não tem como. O tab no JTextArea é gigantesco e acho (tentei sem exito) que não dá para mudá-lo. A formatação do código fica precária…

saoj

Achhhhhhhhhhheeeeeeeeeeeeeiiiiiiiiiiiiiiiiiii !!!

http://syntax.jedit.org
http://ostermiller.org/syntax/

Ironlynx

Sérgio, conseguiu fazer esse JTextArea formatado???
Fiz um q ficou muito tosco…(vou apelar para o JTextPane…)

Criado 30 de setembro de 2004
Ultima resposta 12 de jan. de 2005
Respostas 7
Participantes 5