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 :

Coloration d'une ligne dans JTextArea après une clic souris


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 112
    Points : 72
    Points
    72
    Par défaut Coloration d'une ligne dans JTextArea après une clic souris
    Bonjour,
    je veux colorer et récupérer le contenu de chaque ligne sélectionné par la sourie dans JtextArea.
    la problème que j'arrive pas le faire avec une seul clik mais par contre ca marche avec double clik.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (evt.getClickCount()== 2)
     
    {
    TextArea.setSelectionColor(Color.BLUE);
    String a = TextArea.getSelectedText();
    System.out.println(a);
    }
    lorsque je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (evt.getClickCount()== 1)
    La coloration ne marche plus et le résultat de contenu toujours null

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Il nous faut le code minimal (nettoyé de tout code superflu) reproduisant le problème.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 112
    Points : 72
    Points
    72
    Par défaut
    je veux sélectionner et colorer une ligne dans une JtextArea avec une seul clik
    j'imagine que mon problème est très claire.

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 182
    Points
    182
    Par défaut
    C'est pas un problème que tu viens de nous donner mais ce que tu veux faire, le problème vient surement du code, c'est pour ça qu'il nous le faut.

    De plus, ton event est fait où? Sur le textArea lui même?

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 112
    Points : 72
    Points
    72
    Par défaut
    oui l’événement dans le textArea
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private void TextAreaMouseClicked(java.awt.event.MouseEvent evt) { 
    if (evt.getClickCount()== 1)
     
    {
    TextArea.setSelectionColor(Color.BLUE);
     
    }
    Si elle est une fausse méthode , est ce que vous avez une autre idée pour colorer chaque sélection par un seul clik dans un JtextArea sous Netbeans(Java).

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 182
    Points
    182
    Par défaut
    Je viens de comprendre ce que tu voulais faire.

    En fait l'event MouseClicked est déclanché si on appuis et relache le bouton de la souris au même endroit mais du coup, toi tu selectionnes donc la methode ne se lance pas.
    Utilise l'event MouseReleased.

    Le code "TextArea.setSelectionColor(Color.BLUE);" ne se met pas dans l'event, il agit sur le composant lui même et ça sert à rien de redefinir à chaque fois la couleur de selection. Mets le au moment de la déclaration de ton JtextArea:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JTextArea textArea = new TextArea();
    textArea.setSelectionColor(Color.BLUE);
    Voila.

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 112
    Points : 72
    Points
    72
    Par défaut
    Merci pour votre réponse , mais je suis entrain de développer mon application sous swing donc il me donne pas la main pour ajouter ou modifier le code de création de textArea.
    Est ce que vous êtes sûr que votre méthode s'exécute avec un seul clik sur une ligne dans JtextArea.

  8. #8
    Membre habitué
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 182
    Points
    182
    Par défaut
    Mets cette ligne "textArea.setSelectionColor(Color.BLUE); " dans une methode "initData()" par exemple que tu appelles juste après "initComponents();" dans le constructeur de ta frame.

    Si tu utilises l'event MouseReleased, à chaque fois que tu relacheras le bouton, le texte selectionné sera récupéré.

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 112
    Points : 72
    Points
    72
    Par défaut
    Non , ça marche pas , car il va colorer juste la première sélection c tou de plus il faut cliquer 2 fois pour faira la coloration et moi je veux juste un seul clic donc je pense que je dois utiliser l’événement de clikcount() mais je sais pas comment

  10. #10
    Membre habitué
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 182
    Points
    182
    Par défaut
    Voici ce que j'ai fait:

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    package testframe;
     
    import java.awt.Color;
     
    public class TestTextArea extends javax.swing.JFrame {
     
        public TestTextArea() {
            initComponents();
            initdata();
        }
     
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">
        private void initComponents() {
     
            jScrollPane1 = new javax.swing.JScrollPane();
            jTextArea1 = new javax.swing.JTextArea();
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     
            jTextArea1.setColumns(20);
            jTextArea1.setRows(5);
            jTextArea1.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseReleased(java.awt.event.MouseEvent evt) {
                    jTextArea1MouseReleased(evt);
                }
            });
            jScrollPane1.setViewportView(jTextArea1);
     
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(54, 54, 54)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 260, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(86, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(38, 38, 38)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 188, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(74, Short.MAX_VALUE))
            );
     
            pack();
        }// </editor-fold>
     
        private void jTextArea1MouseReleased(java.awt.event.MouseEvent evt) {
            // TODO add your handling code here:
            String a = jTextArea1.getSelectedText();
            System.out.println(a);
     
        }
     
        public static void main(String args[]) {
            try {
                for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(info.getName())) {
                        javax.swing.UIManager.setLookAndFeel(info.getClassName());
                        break;
                    }
                }
            } catch (ClassNotFoundException ex) {
                java.util.logging.Logger.getLogger(TestTextArea.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                java.util.logging.Logger.getLogger(TestTextArea.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                java.util.logging.Logger.getLogger(TestTextArea.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (javax.swing.UnsupportedLookAndFeelException ex) {
                java.util.logging.Logger.getLogger(TestTextArea.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            }
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new TestTextArea().setVisible(true);
                }
            });
        }
        // Variables declaration - do not modify
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JTextArea jTextArea1;
        // End of variables declaration
     
        private void initdata() {
            jTextArea1.setSelectionColor(Color.blue);
        }
    }
    Si c'est pas bon c'est que j'ai pas compris ce que tu voulais faire.

Discussions similaires

  1. [Débutant] DataGridView - C# : Manque une ligne dans DGV après suppression et rafraichissement
    Par Stéphane8 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/04/2015, 11h41
  2. Ajout une ligne dans un GridView en clic TAB
    Par ragu23 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 17/03/2011, 13h35
  3. Réponses: 1
    Dernier message: 11/02/2009, 06h33
  4. Comment arreter une Sub dans VBA apres une erreur
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/08/2007, 16h13
  5. Comment "colorer" une ligne dans formulaire en col
    Par pyxosledisciple dans le forum IHM
    Réponses: 5
    Dernier message: 09/02/2006, 12h29

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