IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Pouvoir cliquer sur chaque mots d'un texte


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 24
    Par défaut Pouvoir cliquer sur chaque mots d'un texte
    Bonjour

    L'application que je veux développer doit contenir une sorte de correcteur orthographique sur un texte (du code java en fait). L'utilisateur doit être capable de corriger certaines erreurs grossières par le biais d'une GUI en cliquant sur chaque mot du texte (clic qui ferait apparaître une liste d'erreurs par le biais d'un menu par exemple)

    Concrètement, je sais afficher le contenu d'un fichier dans un JTextArea, et à la rigueur je peux parser mon texte avec la library java sur les expressions régulières et créer un jbutton pour chaque mot, mais c'est un coup à attraper la varicelle avec tout ces boutons (le texte/code à corriger peut contenir plusieurs centaines de mots...) et je trouve que c'est pas très propre...

    Peut-être quelqu'un à une idée pour faire ça d'une manière plus astucieuse ? Je demande pas qu'on me donne un code tout fait, jute quelques pistes de réflexion, car j'ai essayé de trouver des moyens de faire ça et pour l'instant je sèche..

    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    pourquoi ne pas s'inspirer de ce qui est fait habituellement :

    - marquer les mots qui ne respectent pas l'orthographe (usuellement soulignés d'une ligne sinusoidale rouge)
    - afficher un menu contextuel (popup) qui propose les corrections


    Pour le marquage, les notions de styles vont te permettre de faire ça : Text component features
    regarde du coté des StyledDocument, StyledEditorKit, etc.

    Pour le menu popup : How to use menus
    regarde en particulier les JPopupMenu

    Ensuite, il te suffit de récuperer le mot sous le caret (curseur) dans ton textarea, et construire ton menu de proposition de corrections à partir de là, chaque action de menu permettant de remplacer ce mot par la correction correspondante.



    Autre solution, non exclusive, faire un dialogue qui ressemble à un dialogue de recherche :
    Un label qui affiche le mot en erreur
    Une liste qui affiche les corrections possibles
    Un bouton : prochain mot en erreur qui passe donc au mot suivant en erreur
    Un bouton : corriger qui remplace donc le mot en erreur par la correction sélectionnée dans la liste
    Eventuellement, un bouton : précédent mot en erreur...
    Un bouton : fermer qui ferme le dialogue
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 24
    Par défaut
    Je me suis mal exprimé au début desolé
    Il ne s'agira pas vraiment de texte à corriger, mais de code java.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (int i =0 ; i<=5 ;  i++) {
        System.out.println(i);
    }
    Je veux que l'utilisateur puisse cliquer sur le "i", et qu'il puisse sélectionner une erreur du type "Le nom de l'identificateur {0} n'est pas adéquat" ou qqch du genre, et qu'il soit écrit dans un fichir cette erreur...
    Ainsi, la selection de l'erreur ne peut être faite automatiquement (ce que tu proposais avec les notions de style), elle doit ête fait manuellement...

    Par contre :
    Ensuite, il te suffit de récuperer le mot sous le caret (curseur) dans ton textarea, et construire ton menu de proposition de corrections à partir de là, chaque action de menu permettant de remplacer ce mot par la correction correspondante.
    c'est plus ça qui m'interesse. Il est possible de récuperer un mot d'un textarea en cliquant dessus ?
    Merci en tout cas

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par jklms Voir le message
    Je veux que l'utilisateur puisse cliquer sur le "i", et qu'il puisse sélectionner une erreur du type "Le nom de l'identificateur {0} n'est pas adéquat" ou qqch du genre, et qu'il soit écrit dans un fichir cette erreur...
    Ainsi, la selection de l'erreur ne peut être faite automatiquement (ce que tu proposais avec les notions de style), elle doit ête fait manuellement...
    fouyahhh tu veux pouvoir proposer toutes les erreurs possibles suivant une portion de code java sélectionnée !? ambitieux ! Et à part pour le challenge personnel, tous les IDE dignes de ce nom proposent ce qu'il faut pour corriger du code java.

    Citation Envoyé par jklms Voir le message
    c'est plus ça qui m'interesse. Il est possible de récuperer un mot d'un textarea en cliquant dessus ?
    Merci en tout cas
    Oui, on peut récupérer soit la position actuelle du curseur (le caret), soit la sélection actuelle.

    Tu as trouvé un exemple qui permet de récupérer la sélection,

    pour récupérer le mot sous le caret, tu récupères la positionpar getCaretPosition, le text par getText(), et tu cherches le début du mot ou la fin (ce qui va pas être trivial pour du code java)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 24
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    fouyahhh tu veux pouvoir proposer toutes les erreurs possibles suivant une portion de code java sélectionnée !? ambitieux ! Et à part pour le challenge personnel, tous les IDE dignes de ce nom proposent ce qu'il faut pour corriger du code java.
    Toutes peut-être pas, mais une dizaine sans doute... J'aimerais que la liste soit éditable et qu'il soit possible de créer dynamiquement une nouvelle erreur... En fait, à chaqu erreur j'associe un retrait de point, et ca permettrait de noter des codes plus facilement...

    pour récupérer le mot sous le caret, tu récupères la positionpar getCaretPosition, le text par getText(), et tu cherches le début du mot ou la fin (ce qui va pas être trivial pour du code java)
    Avec les expressions régulières, je pense que je vais y arriver

    merci en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/04/2010, 01h46
  2. Comment pouvoir cliquer sur un label ?
    Par WebPac dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 03/06/2009, 09h57
  3. Réponses: 4
    Dernier message: 04/12/2008, 20h53
  4. [DEBUTANT]ne pas pouvoir cliquer sur certains champs d'une liste deroulante
    Par eclipse012 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 26
    Dernier message: 03/10/2006, 17h44
  5. Cliquer sur image+texte
    Par Patrick Seuret dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 18/05/2006, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo