Appliquer un style sur du texte, par reconnaissance syntaxique - Java - Programmation
Marsh Posté le 06-05-2003 à 10:19:33
tu cherches des renseignements sur quoi : le parsing ou l'embedding, ou les deux ?
Marsh Posté le 06-05-2003 à 10:25:52
Les deux, je suppose. L'analyse du document doit être facilitée par quelques classes fournies par Sun, de même que la mise à jour de l'affichage. C'est encore un peu flou pour moi.
Marsh Posté le 06-05-2003 à 15:11:00
y'avait deja eu un topic la dessus, mais j'arrive pas a le retrouver.
Perso j'en avais fait, mais c'etait juste de la reconnaissance de mot cle, et non de zone comme tu le souhaite la (mais si tu veux je peux te developper comment j'avais fait)
Marsh Posté le 06-05-2003 à 15:14:50
j'avais un code qui faisait ça, mais j'arrive pas à remettre la main dessus
vais chercher encore.
Marsh Posté le 06-05-2003 à 15:16:16
Alors je connais à peine le sujet mais vala ce que je vais pouvoir en dire :
* effectivement, un JEditorPane ou un JTextPane semblent appropriés pour l'affichage et les définitions de styles ;
* pour le traitement, c'est toi qui vas devoir te le palucher. Les regexp font des merveilles dans ce domaine.
Bref : java.util.regex, javax.swing.text pour les Styles, StyleConstraints, etc... qui vont pouvoir donner à un texte spécifié l'affichage et le format désirés.
Marsh Posté le 06-05-2003 à 15:54:53
Hum... Intéressant. chrisbk, walli, Taiche > avez-vous des sources d'inspiration ? J'imagine qu'il doit y avoir une notion de refreshrate pour recalculer l'affichage, de même que des optimisations locales par rapport au curseur...
Marsh Posté le 06-05-2003 à 15:59:45
Bin moi je parlais surtout lors du premier affichage. Après, lors de l'édition, je me baserais sur un système d'événements plutôt que de faire du refresh, ça me semble plus adapté.
Si tu veux un bon exemple, t'as Jext ( http://www.jext.org ) qui est un éditeur de code Open Source et où tu pourras trouver des exemples. Je sais pas si ça correspondra à tes besoins mais ça fait déjà un exemple.
Marsh Posté le 06-05-2003 à 16:08:04
Cherrytree a écrit : Hum... Intéressant. chrisbk, walli, Taiche > avez-vous des sources d'inspiration ? J'imagine qu'il doit y avoir une notion de refreshrate pour recalculer l'affichage, de même que des optimisations locales par rapport au curseur... |
bon moi c'etait vraiment QUE pour les mots cles. C'etait en C++ sans aucune lib mais bon, C++ ou java ca changera rien...
J'etais parti sur un arbre N-aire. Chaque noeud contenait un caractere, et un boolean indiquant si le noeud etait terminal ou non (et bien sur une liste de fils)
je recup le caractere, regarde dans mon arbre si il y a un fils contenant ce caractere. si oui et si le noeud est marque comme terminal je colorie, sinon ben rien (je decolorie, meme)
j'analyse le mot sur lequel il se trouve, et envoie le debut du mot dans l'arbre
ca necessite pas mal de reglage pour marcher comme il faut (par exemple faire gaffe a ne pas colorier "int" dans "integer" si "int" est un mot cle), faire gaffe aussi aux blagues possibles (espace en milieu d'un mot cle deja colorie, backspace, saut de ligne et tout ca), mais dans l'ensemble ca marchait bien
niveau optim, en C++ j'avais la possibilite de desactiver le rafraichissement de la fenetre pendant mes calculs / changement de couleur. En java je sais pas (je connais bpc trop peu java pour te dire si oui ou non c possible)
edit : pour les zones ca doit etre plus complexe puisqu'il faut retrouver le "contexte" dans lequel se situe le mot..... avec un parser ok, mais ca m'etonnerait que ca soit viable niveau perf
Marsh Posté le 06-05-2003 à 19:17:15
moi je vien de faire un projet de traduction et d'annimation d'algo et pour mettre en forme g utilisé se bon vieu html c cool et c facil pour l'utilisateur de paramètrer mais le xml ça doit commencer à devenir coton ...
Marsh Posté le 07-05-2003 à 16:37:56
artemice a écrit : moi je vien de faire un projet de traduction et d'annimation d'algo et pour mettre en forme g utilisé se bon vieu html c cool et c facil pour l'utilisateur de paramètrer mais le xml ça doit commencer à devenir coton ... |
Génial !
Marsh Posté le 06-05-2003 à 09:29:21
Voilà, dans un TextComponent à définir (JEditorPane à première vue), je souhaite afficher du XML. J'aimerais afficher de manière distincte les commentaires, les clés, les valeurs, les chaînes "<", ">" et "</"... Bref formater mon XML pour en faciliter la lecture, y compris pendant l'édition.
J'ai survelé le Java Tutorial, mais c'est un peu léger comme ressource sur le sujet. Pourriez-vous me fournir quelques pistes ?
---------------
Le site de ma maman