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

NetBeans Java Discussion :

Définir la position du curseur dans un code source


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 46
    Par défaut Définir la position du curseur dans un code source
    Bonjour à tous,

    je cherche à positionner le curseur à un endroit précis dans le code de la vue "éditeur" de Netbeans.
    Le java.awt.Robot ne m'est d'aucune utilité puisque je ne cherche pas à positionner le curseur selon des ordonnées et des abscisses mais selon le numéro d'une ligne de code ou d'une position en absolue dans le code source.

    Si vous avez une idée, je suis preneur !
    Merci d'avance,

    Steackfrite

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 46
    Par défaut
    A force de recherche, j'ai fini par bricoler un bout de code qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    /**
         * Go to the clicked marker
         *
         * @param fileName
         *                          Name of the file
         */
    public void goToSelectedMarker(String fileName) // le nom du fichier et pas son chemin
        {
            // On récupère la vue "editeur" qui correspond à la fenêtre contenant le code source dans Netbeans
            Mode m = WindowManager.getDefault().findMode("editor");
     
            // Boucle permettant de trouver le topComponent que l'on souhaite mettre en avant
            for (TopComponent topC : m.getTopComponents())
            {
                if (topC.getDisplayName() != null)
                {
                    // Si l'un des onglets dans la vue "éditeur" correspond au nom du fichier passé en paramètre ...
                    if (topC.getDisplayName().equals(fileName))
                    {
                        System.out.println("Ça fonctionne !! : " + fileName);
                        // On force le topComponent à prendre le focus
                        topC.open();
                        topC.requestActive();
                        // Un peu flou
                        Node[] nodes = topC.getActivatedNodes();
                        EditorCookie ec = (EditorCookie) nodes[0].getCookie (EditorCookie.class);
                        if (ec != null)
                        {
                            JEditorPane[] panes = ec.getOpenedPanes ();
                            if (panes.length > 0) 
                            {
                                // root contient le document correspondant au code source (je pense)
                                Element root = panes[0].getDocument().getDefaultRootElement();
                                // child contient la ligne 11 --> Attention, ça commence à partir de 0
                                Element child = root.getElement(10);
                                // Position de la ligne dans le fichier (en offset)
                                int rowOffset = child.getStartOffset();
                                // On force le curseur à se mettre à la ligne 11
                                panes[0].setCaretPosition(rowOffset);
                            }
                        }
                    }
                }
            }
        }
    En espérant que ça aidera quelqu'un =)

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

Discussions similaires

  1. Position du curseur dans un TEdit
    Par Captain_JS dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/07/2005, 15h16
  2. [PDE] Récupérer position du curseur dans un éditeur
    Par simsky dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 05/07/2005, 15h50
  3. Obtenir la position du curseur dans une Image
    Par bastoune dans le forum Composants VCL
    Réponses: 6
    Dernier message: 14/11/2003, 21h02
  4. Position du curseur dans un TMemo
    Par yokito dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2003, 16h35
  5. Position du curseur dans Edit
    Par MrJéjé dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 17h09

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