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

AWT/Swing Java Discussion :

[JTextArea] Numéro ligne d'une selection


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut [JTextArea] Numéro ligne d'une selection
    Bonsoir tout le monde!

    Bon ça fait déjà un petit moment que je fouille l'Internet pour trouver une réponse et puis bon au final je n'ai rien trouvé.

    Dans mon JTextArea, il y a un texte. Je sélectionne un mot dans une phrase. Comment connaître le numéro de ligne du JTextArea où la sélection a été faite?

    Il faut savoir que :
    - mon JTextArea n'a pas de limites de taille (utilisation d'un JScrollPane)
    - une ligne = une phrase

    En gros le but de l'opération revient à connaître le numéro de la phrase où la sélection a été faite.

    Si je n'ai pas été assez clair je reste dans les parages pour de plus amples explications.

    Merci d'avance.

  2. #2
    Membre éclairé
    Avatar de JMLLB
    Inscrit en
    Septembre 2006
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 285
    Par défaut
    Tu as la méthode getSelectionStart
    http://javasearch.developpez.com/j2s...lectionStart()
    mais si ton nombre de caractères n'est pas constant pour chaque ligne, ça ne te servira pas à grand chose.

    Si tu gères plus des lignes que du text en vrac, une JList dans un JScrollPane peut être une solution, car tu auras toutes les méthodes appropriées de selection de ligne.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut
    Si seulement ce n'était que pour la sélection d'une ligne, c'est sur que la JList serait ce qu'il faut. Merci quand même pour cette proposition.

    En gros j'explique la finalité de mon exercice :

    Première Frame :

    J'ai deux textes. Le premier texte est dans une langue ancienne et le second est sa traduction en français. Ils sont présentés dans deux JTextArea mises côte à côté.

    Je veux sélectionner un mot dans le texte 1 puis sélectionner le mot qui lui correspond dans le texte 2 pour les associer dans ma base de données.

    genre la table relation :
    idRelation | idTexte | motLatin | numPhraseLatin | motFrançais | numPhraseFrançais

    Deuxième Frame :

    Si je fais une recherche d'un mot et qu'à ce mot il existe une relation dans ma base, alors je dois être capable d'afficher les phrases où se situent le mot en langue latine et et sa traduction.

    C'est pourquoi quand j'enregistre mon texte dans ma base je le fais en le découpant phrase par phrase.

    Merci de votre aide!

  4. #4
    Membre éclairé
    Avatar de JMLLB
    Inscrit en
    Septembre 2006
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 285
    Par défaut
    Tu peux toujours, dans le cas d'un JTextArea, entretenir une structure stockant les infos suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string mot;
    int numPhrase;
    int postionDernierChar;
    avec des méthodes du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string getMot(int);
    int getNumPhrase(int);
    void setMot(int,string);
    mais ca t'impose d'avoir un KeyListener ou un autre mécanisme du genre pour contrôler la modification de ton texte (car je suppose que tu peux modifier la partie "française").
    Par contre, ça te permet de décorréler phrase et ligne (et vu mes souvenirs d'ex latiniste de thème/version, ça peut être utile).



    Ceci étant dit, je continue de penser qu'une JList avec ListCellRenderer personnalisé (étendant par exemple un JTextField) reste une solution plus simple.
    Surtout si tu t'arranges pour que le mode de sélection du JTextField ne gère que des mots entiers.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut
    Ok merci je vais coder tout ça voir ce que ça donne!

    Sinon ce matin au réveil j'ai eu une idée!

    Comme quoi le cerveau fonctionne toujours quand on dort!

    ----

    Alors je t'expose l'idée :

    Finalement mon idée de mettre une phrase par ligne est assez moyen je trouve. Alors pourquoi ne pas faire une succession normale de phrases comme tout bon texte qui se respecte?

    Pour cela :

    - Donner des dimensions au JTextArea, un retour à la ligne et chaque retour à la ligne se fait par mot entier.

    - Pour chaque phrase que l'on rajoute dans le JTextArea on mémorise la position de fin "getSelectionEnd()" dans un tableau d'entier. Les indices de ce tableau correspondent aux numéros des phrases. Je prend un tableau mais une autre structure peut être utilisée. ex : la position de fin de la phrase numéro 3 sera stockée comme positionsPhrases[3]=45;

    - Ainsi quand on sélectionne un mot, on regarde sa position dans le texte et grâce à ce tableau on peut connaître facilement à quelle phrase il appartient.

    ----

    Je ne sais pas si j'ai oublié des éléments dans mon explication. En tout cas si ce n'est pas clair, je reste dans les parages.

    Que penses-tu de cette idée?

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/12/2013, 14h53
  2. Réponses: 4
    Dernier message: 19/11/2013, 11h03
  3. recupere la ligne d'une selection
    Par skillipo dans le forum VBA Access
    Réponses: 4
    Dernier message: 03/12/2007, 19h37
  4. Afficher le numéro de ligne dans une requete SELECT
    Par tilb dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/09/2004, 10h20
  5. [JSP] Affichage numéro de ligne d'une exception
    Par PhoneKilleR dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 23/09/2003, 14h59

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