Newsgroup: it.comp.java
Titolo: Syntax Highligth

Utilizzo un componente JTextArea e vorrei realizzare una sorte di Syntax
Highligth.
Ho visto che questo componente ha il metodo setHighlighter che credo
dovrebbe fare al caso mio ma non sono riuscito a capirci niente, non nè che
qualcuno potrebbe darmi una mano o un esempio?
Grazie
Alex

 qualcuno potrebbe darmi una mano o un esempio?
JTextArea non č adatto allo scopo perché permette di visualizzare testo in
un solo stile (cioč tutto con lo stesso font e nello stesso colore.)
L'Highlighter di JTextArea a cui ti riferisci non serve a creare un syntax
highlighter, ma si occupa di evidenziare il testo quando lo selezioni
(cambiando il colore di sfondo e di primo piano del testo selezionato.)
Per creare un syntax highlighter devi utilizzare, almeno a livello grafico,
un componente piů sofisticato come ad esempio JTextPane, che ti mette a
disposizione metodi tipo setCharacterAttributes() o setParagraphAttributes()
per modificare gli attributi visivi (come il colore) di singole porzioni di
testo.
Per quanto riguarda la gestione semantica del syntax highlighting, devi
implementare un parser che riconosca in tempo reale le varie parole chiave e
strutture che vuoi evidenziare. Si tratta di un compito tutt'altro che
banale!
Il mio consiglio č di girare un po' su internet e dare un'occhiata ai
sorgenti java di qualche editor di codice che implementi il syntax
highlightening. Di solito puoi trovarli all'interno qualcuno degli IDE open
source. Buona caccia!
Marco.
--
Per scrivermi direttamente elimina
__TOGLIMI__ dall'indirizzo e-mail.


http://www.pabasoftware.com

 jdk1.3/demos).
Certo, se non gli serve che reagisca all'editing. Infatti in quell'esempio
il syntax highlightening viene fatto trasformando il codice sorgente in HTML
ed evidenziando le parole chiave, i commenti e le stringhe con <FONT
COLOR=...> Trasformarlo in editabile non è esattamente uno scherzo, almeno
non finché si appoggia su HTML. Rimane comunque un buon esempio per studiare
il problema, ottima segnalazione!


> jdk1.3/demos).
MG> Certo, se non gli serve che reagisca all'editing. Infatti in
MG> quell'esempio il syntax highlightening viene fatto trasformando il
MG> codice sorgente in HTML ed evidenziando le parole chiave, i
MG> commenti e le stringhe con <FONT COLOR=...> Trasformarlo in
MG> editabile non è esattamente uno scherzo, almeno non finché si
MG> appoggia su HTML.
Conviene  farsi un  oggetto in  cui ad  ogni carattere  sono associati
degli attributi ulteriori in questo caso. Anche perché non è detto che
il testo in html sia colorato con un tag <FONT>, si può anche usare il
<span style="color: ...">
\begin{echelon}
security assassination Khaddafi cryptographic Honduras arrangements
counter-intelligence South Africa SDI kibo domestic disruption
Treasury NSA supercomputer ammunition
\end{echelon}
\begin{avviso}
 
Attenzione: Leggersi lo header riguardo al mio e-mail!
Warning: read header for infos about my e-mail.
\end{avviso}
+----------------------------------------------------------------+
| Gian Uberto Lauri * "So, are you working on fixing that bug    |
| 
sa...@eng.it
      *  *now* or leaving it until later ?" - YES  |
+----------------------------------------------------------------+