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 :

JTable dans JTextArea


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 8
    Par défaut JTable dans JTextArea
    Bonjour tout le monde,

    Voila j'ai un petit problème pour mon projet de stage, donc j'effectue un "drag and drop " entre un JTable et un JTextArea, les fonctions étant déjà prédéfinies, cela est très facile.

    Mon problème est que je n'arrive pas à faire un retour à la ligne après un drop, donc tous les drops se trouvent sur une seule ligne..
    Comment je peux faire ça svp?

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Le texte contient-il des retours à la ligne (genre \n & cie)?

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 8
    Par défaut
    Bonjour Sinok, merci d'essayer de m'aider

    En faite, j'ai un JTable qui contient des noms d’élèves que je rempli à partir d'un fichier, et je drop les noms dans un JTextArea. Donc je drop une ligne de la table dans la le textarea, ensuite je selectionne une autre ligne pour la droper et ainsi de suite. Il n'y donc rien pour faire un retour à la ligne après chaque drop.

    Je ne vois pas du tout comment imposer un retour à la ligne après chaque drop?

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En faisant ça dans le TransfertHandler

    Petit exemple avec une JList:
    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
     
    package dnd;
     
    import java.awt.BorderLayout;
    import java.awt.Rectangle;
    import java.awt.datatransfer.DataFlavor;
    import java.awt.datatransfer.Transferable;
    import java.io.File;
     
    import javax.swing.DefaultListModel;
    import javax.swing.DropMode;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.TransferHandler;
     
    public class TextAreaDrop {
     
        private JList list;
        private JTextArea area;
        private JFrame f;
     
        public TextAreaDrop() {
            // TODO Auto-generated method stub
            list = new JList();
            area = new JTextArea();
            f = new JFrame();
            DefaultListModel m = new DefaultListModel();
            m.addElement("toto");
            m.addElement("titi");
            m.addElement("tata");
            m.addElement("tutu");
            m.addElement("tete");
            list.setModel(m);
            list.setDragEnabled(true);
            area.setDropMode(DropMode.INSERT);
            area.setDragEnabled(true);
            area.setTransferHandler(new TransferHandler() {
                @Override
                public boolean canImport(TransferSupport support) {
                    if (!support.isDataFlavorSupported(DataFlavor.stringFlavor)) {
                        return false;
                    }
                    return true;
                }
     
                @Override
                public boolean importData(TransferSupport support) {
                    if (!canImport(support)) {
                        return false;
                    }
     
                    Transferable transferable = support.getTransferable();
                    String data;
                    try {
                        data = (String) transferable
                                .getTransferData(DataFlavor.stringFlavor);
                    } catch (Exception e) {
                        return false;
                    }
     
                    JTextArea textArea = (JTextArea) support.getComponent();
                    textArea.append(data);
                    textArea.append(System.getProperty("line.separator"));
                    textArea.setCaretPosition(textArea.getDocument().getLength());
     
                    return true;
                }
            });
            f.add(list, BorderLayout.NORTH);
            f.add(new JScrollPane(area));
            f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            f.pack();
            f.setLocationRelativeTo(null);
            f.setVisible(true);
        }
     
        public static void main(String[] args) {
            new TextAreaDrop();
        }
    }

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 8
    Par défaut
    OK donc je vais créer une classe TransferHandler ( ce que je n'avais pas fait car le drag du JTable et prédéfini et le drop dans un JTextArea est automatique ) en utilisant votre modèle.

    Je changerais juste le JList par un JTable

    Merci de votre aide, je vous informerai de la suite

Discussions similaires

  1. Probleme de JTable dans un JScrollPane
    Par ythim dans le forum Composants
    Réponses: 7
    Dernier message: 20/04/2006, 16h43
  2. Insertion de tableau dans JTextArea et MouseListener
    Par Janitrix dans le forum Composants
    Réponses: 1
    Dernier message: 05/11/2005, 01h08
  3. [KeyLister] Probleme dans JTextArea
    Par gl0be dans le forum Composants
    Réponses: 9
    Dernier message: 12/05/2005, 14h25
  4. [Débutant] Scrolls dans JTextArea
    Par k-reen dans le forum Composants
    Réponses: 2
    Dernier message: 30/06/2004, 16h14
  5. JTable dans un scrollpane
    Par Scrusher dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 04/05/2004, 20h45

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