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

 Java Discussion :

Affichage JTextArea + défilement


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 17
    Par défaut Affichage JTextArea + défilement
    Bonjour,
    j'ai un problème bête : je veux afficher du texte dans un JTextArea sans avoir à spécifier le nombre de lignes et de colonnes mais l'utilisateur doit pouvoir faire défiler le texte.

    Je me suis basé sur ce tuto : http://www.java2s.com/Tutorial/Java/...elineinput.htm

    Ce qui est bizarre c'est qu'en utilisant TextArea le défilement est possible mais j'aimerais utiliser JTextArea qui est plus joli.

    Voici mon 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
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.TextArea;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
     
    public class Test extends JFrame{
     
    	private Container c;
    	protected JTextArea textArea1;
    	protected TextArea textArea2;	
     
    	public Test(){
    		super("Fenetre");			
    		initComposant();
    		this.setVisible(true);
    		this.setExtendedState(JFrame.MAXIMIZED_BOTH );		
    	}	
     
    	public void initComposant(){
    		c = getContentPane();
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
     
    		String text = "Test JTextArea1" +
    		"Le langage Java est un langage de programmation informatique orienté objet créé par James Gosling " +
    		"et Patrick Naughton employés de Sun Microsystems " + "\n"+
    		"avec le soutien de Bill Joy (cofondateur de Sun Microsystems en 1982), " +
    		"présenté officiellement le 23 mai 1995 au SunWorld.";
    		String text2 = text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text
    		+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text+"\n\n\n"+text;
     
    		textArea1 = new JTextArea(text2);
    		//textArea1 = new JTextArea(text2, 50, 50);
    		textArea1.setPreferredSize(new Dimension(300, 200));
    		textArea1.setWrapStyleWord(true);
    		textArea1.setLineWrap(true);
    		JScrollPane scrollPane1 = new JScrollPane(textArea1,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
    				JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);			
     
    		textArea2 = new TextArea(text2);
    		textArea2.setPreferredSize(new Dimension(300, 200));	
     
    		c.add("West", scrollPane1);
    		c.add("East", textArea2);
     
    	}
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Test t = new Test();
    	}
     
    }
    Chez moi j'ai le JTextArea de gauche avec les ascenceurs qui ne servent à rien et à droite le TextArea avec les ascenceurs automatiques qui permettent le défilement.

    Merci. Je me sens un peu con avec ce problème.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Par défaut
    Bonjour,

    je n'ai jamais eu ce type de problème mais je n'utilise que swing

    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
    public class Test extends JFrame {
     
        private JScrollPane paneTextArea1;
        protected JTextArea textArea1;
     
        public Test() {
            super("Fenetre");
            initComposant();
            this.setVisible(true);
            this.pack();
        }
     
        public void initComposant() {
     
            setDefaultCloseOperation(EXIT_ON_CLOSE);
     
            String text = "Test JTextArea1"
                    + "Le langage Java est un langage de programmation informatique orienté objet créé par James Gosling "
                    + "et Patrick Naughton employés de Sun Microsystems " + "\n"
                    + "avec le soutien de Bill Joy (cofondateur de Sun Microsystems en 1982), "
                    + "présenté officiellement le 23 mai 1995 au SunWorld.";
            String text2 = text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text
                    + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text + "\n\n\n" + text;
     
            textArea1 = new JTextArea(text2);
            paneTextArea1 = new JScrollPane(textArea1, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
            this.add(paneTextArea1, BorderLayout.CENTER);
     
        }
     
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Test t = new Test();
        }
    }
    et la les barre marche très bien

    je pense que ça viens du layoutMnage mais je ne suis pas sur

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 17
    Par défaut
    Merci de ta réponse et de ton exemple.
    J'ai pu voir ce qui clochait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textArea1.setPreferredSize(new Dimension(300, 200));
    Si on lui définit une taille préférentielle, les ascenseurs ne marchent plus...
    Si je rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textArea1.setPreferredSize(new Dimension(300, 200));
    à ton code j'ai le même problème d'ascenseurs.

    Voici le code qui résout mon problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    textArea1 = new JTextArea(text2, 0, 40);
    		//textArea1.setPreferredSize(new Dimension(300, 200));
    		//textArea1.setWrapStyleWord(true);
    		//textArea1.setLineWrap(true);
    C'est la première fois que vois une classe Swing plus compliqué à utiliser que Awt!

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Fixer les preferredSize n'est pas franchement une des meilleures pratiques. Ca a tendance à rendre ton interface un peu étrange sur des résolutions plus grandes ou plus petites que la tienne. Mieux vaut utiliser un layout bien équilibré. Par exemple les FormLayout, MigLayout ou GridBagLayout si correctement utilisés ne nécessitent pas de fixer la preferredSize (moins évident pour le GridBag toutefois, j'avoue).

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

Discussions similaires

  1. [Flex3] Affichage et Défilement d'images
    Par verryvalentino dans le forum Flex
    Réponses: 1
    Dernier message: 15/10/2010, 15h55
  2. affichage images défilement
    Par osia1 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/04/2008, 15h38
  3. Problème d'affichage JTextArea
    Par nickkian dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 03/07/2006, 17h28
  4. Affichage JTextArea dans un JScrollPane
    Par krum dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 18/05/2006, 11h03
  5. [SWING] pb d'affichage JTextArea translucide
    Par Deaf dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/04/2006, 08h58

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