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 :

afficher sur JScrollPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut afficher sur JScrollPane
    salut mes amis je voulais afficher sur JScrollPane ma liste masi ça n'a pas marché j'ai essaué d'utiliser la méthode setText() mais elle n'a pas marché

    voila le code
    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
     
     
    package aa;
    import javax.swing.*;
    import java.awt.*;
    import java.io.*;
    import java.lang.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
     
     
    public class SimpleFenetre extends JFrame implements ActionListener   {
    private JButton Ok = new JButton("OK");
    private GridBagLayout gbl = new GridBagLayout();
    private JTextPane b = new JTextPane();
    private JScrollPane n = new JScrollPane();
     
      public SimpleFenetre()  {
        this.getContentPane().setLayout(gbl);
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.fill = GridBagConstraints.NONE;
        gbc.gridx = 0;
        gbc.gridy = 0;
        b.setText("affichage");
        n.setPreferredSize(new Dimension(300, 225));
        n.setViewportView(b);
        gbl.setConstraints(this.n, gbc);
        this.getContentPane().add(this.n);
     
     
     
     
       gbc.gridy = 2;
       gbc.anchor = GridBagConstraints.FIRST_LINE_END;
       gbl.setConstraints(this.Ok, gbc);
       Ok.addActionListener(this);
       this.getContentPane().add(this.Ok);
     
     
     
     
     
     
      this.setResizable(false);
        this.setSize(520, 620);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
     }
       public static void main(String[] args) {
       SimpleFenetre gui = new SimpleFenetre();
     }
     
     
      public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(Ok)) {
     
          ArrayList s = new ArrayList();
            s.add("B");
            s.add("C");
            s.add("D");
            s.add("A");
     
         n.setText(s);
     
        }
      }
     
     }
    merci de bien vouloir m'aider

  2. #2
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    je voulais afficher sur JScrollPane ma liste
    Je ne comprends pas...

    Vive les noms de variables explicites : b, n, on comprend tout de suite quel est le type de ces variables...

    Et faire du setText sur un JScrollpane ça ne va pas donner grand chose.

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    voila la déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private JTextPane b = new JTextPane();
    private JScrollPane n = new JScrollPane();
    quel est la méthode qui me permet d'afficher ma liste s(ArrayList) sur JScrollpane au lieu setText

  4. #4
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    voila la déclaration
    private JTextPane b = new JTextPane();
    private JScrollPane n = new JScrollPane();
    J'avais vu la déclaration, je te disais qu'il valait mieux utiliser des noms de variables plus explicites du genre "nameTextPane" ou "scrollPane", quelque chose du genre fonction_du_composantType_du_composant.
    Ca permet de voir tout de suite à quoi correspond chaque variable car quand tu reprendras ton projet dans 6 mois, tu ne sauras plus à quoi correspond b ou n, et tu seras obligé de faire des aller-retour entre définition et utilisation...
    Après, c'est un conseil, t'en fais ce que tu veux.

    quel est la méthode qui me permet d'afficher ma liste s(ArrayList) sur JScrollpane au lieu setText
    Alors déjà, un JScrollPane n'affiche pas un texte, c'est juste un container qui te permet d'afficher des scrollbars autour d'un composant qui peut avoir une taille relativement importante.

    Après si tu veux afficher le contenu de ton ArrayList dans ton JTextPane, il te suffit de créer une méthode qui :
    - crée une String
    - parcours ton ArrayList
    - pour chaque élément de ton ArryList, concatène l'élément à ta String
    Ensuite, tu n'as plus qu'à faire du setText sur ton JTextPane.

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Par défaut
    Bonjour,
    une solution possible pourrait peut-être de passer par le couple suivante: JScrollPane + JTextArea.

    Le JScrollPane pour, comme son nom l'indique, faire défiler si nécessaire le contenu du JTextArea, auquel on ajoutera ( par la méthode append() ) le contenu.
    Ca ne correspond peut-être pas à la meilleure pratique possible, mais cependant je pense que cela résolverait le problème dont il est question.

    S. Desbois

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    voila par exemple si je veux afficher la liste sans utiliser interface SWING

    la liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     ArrayList s = new ArrayList();
            s.add("B");
            s.add("C");
            s.add("D");
            s.add("A");
    je mets System.out.print ("ma laiste"+s);
    mais je cherche a afficher dans la liste dans l'interface
    avec settext ne marche pas
    je suis sur qu'il y a une autre méthde qui me permet d'afficher le résulta dans ma fenetre sans création une méthode

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Par défaut
    Bonjour,

    je me joins à seiryujay en ce qui concerne le nommage des variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private JTextPane textPane = new JTextPane();
    private JScrollPane scrollPane = new JScrollPane();
    C'est quand même plus facile à lire même plusieurs mois plus tard.

    Pour ce qui est de ton problème, un JScrollPane ne sert qu'à afficher un composant dont la taille peut être plus grande que la zone affichage.
    Ce n'est donc pas "le texte" du JScrollPane qu'il te faut modifier mais celui de ton JTextPane.
    En réutilisant ton architecture (qui ne respecte pas un modèle MVC ! ) ca donnerait ceci:
    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
      public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(Ok)) {
     
          ArrayList s = new ArrayList();
            s.add("B");
            s.add("C");
            s.add("D");
            s.add("A");
     
            StringBuffer sb = new StringBuffer(s.size());
            for (Object object : s) {
    			sb.append(object.toString()).append("\n");
    		}
         b.setText(sb.toString());
     
        }
      }

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Par défaut
    pour ajouter un composant dans un JScrollPane, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    JTextPane textPane = new JTextPane();
    textPane.setVisible(true) ;
     
    ...
    JScrollPane monJScrollPane = new JScrollPane(textPane) ;
    monJScrollPan.setVisible(true) ; //c'est peut etre pas necessaire !
     
    panelPrincipal.add(monJScrollPane) ;

Discussions similaires

  1. $dispo[0] et session pour afficher sur page suivante?
    Par oceane751 dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2006, 04h10
  2. Réponses: 2
    Dernier message: 21/03/2006, 01h24
  3. [Info][débutant] choix type video à afficher sur le web
    Par oumani dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 08/02/2006, 10h31
  4. [XSL-FO] Afficher sur la dernière page seulement !!
    Par Rumeurs dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 31/01/2006, 21h05
  5. Réponses: 3
    Dernier message: 07/01/2006, 22h17

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