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 :

Empêcher redimensionnement automatique JTextArea


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Par défaut Empêcher redimensionnement automatique JTextArea
    Bonjour,

    Je ne vous dérangerai pas longtemps, promis.

    Une petite question: Je suis en train de créer une interface utilisateur contenant notamment des JTextArea que l'utilisateur remplira. Mon problème est le suivant: j'aimerais empêcher que le JTextArea ne s'agrandisse si l'utilisateur est trop bavard (je préférerais une barre déroulante dans ce cas de figure). Est-ce possible, ou devrais-je peut-être utiliser un autre objet plus adapté à mes besoins?

    Au passage, est-ce que je peux mettre un contour à mon JTextArea pour qu'il ait la même apparence que mes JTextField? (Si oui comment?)

    Merci d'avance de votre aide.

  2. #2
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Salut,

    Citation Envoyé par Titelouve Voir le message
    (je préférerais une barre déroulante dans ce cas de figure).
    oui c'est possible si tu utilise un JScrollPane
    un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class MyJTextArea extends JTextArea 
    {  public MyJTextArea(Container c) 
    {     
    JScrollPane scrollPaneArea =        new JScrollPane(this,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);   
    this.setEditable(false);  
    this.setCaretPosition(0); //set scrollPane to the top   
    scrollPaneArea.setPreferredSize(new Dimension(500, 400)); 
    c.add(scrollPaneArea);  }

  3. #3
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Par défaut
    Merci bien pour ta réponse.
    J'ai copié ton code, mais je crois que je sais pas trop comment l'utiliser...
    En fait j'arrive pas à écrire dans l'espace qui apparaît dans l'interface utilisateur!

    Qu'est-ce que je dois envoyer au constructeur quand je crée un objet MyJTextArea? En fait mon MyJTextArea se trouvera placé dans un GridBagLayout.
    (J'ai essayé d'envoyer au constructeur un "new Container()" et un "new JTextArea()" mais sans succès, je ne peux pas écrire dans mon champs.)

    Ma question est probablement bête mais merci d'avance

  4. #4
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Il y a plusieurs manières de rajouter un ScrollPane. slim_java à utilisé un constructeur mais on peut faire autrement. ( sans vouloir critiquer la 1ere méthode.) Peut -être qu'après tu comprendras mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    JTextArea monTextArea = new JTextArea();
    JPanel monPanel = new JPanel();// Équivalent à Container c
    //.. Paramètrage de monTextArea et monPanel
    JScrollPane scrollPaneArea = new JScrollPane(monTextArea,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); //J'ajoute un Scroll à monTextArea
    //C'est comme si scrollPaneArea entourait monTextArea
    //Paramètrage du scroll
    scrollPaneArea.setEditable(false);  
    scrollPaneArea.setCaretPosition(0); //set scrollPane to the top   
    scrollPaneArea.setPreferredSize(new Dimension(500, 400)); 
    monPanel.add(scrollPaneArea); //Enfin j'ajoute mon scroll au panel.( scroll qui contient monTextArea) }
    Edit : pour répondre à ta question. c doit contenir l'instance de ton Container. (JPanel est un Container).

  5. #5
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Par défaut
    Merci, c'est déjà un peu plus clair.

    Actuellement j'en suis à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        static JScrollPane ajouterScroll(JTextArea champs){
            JScrollPane scrollPaneArea = new JScrollPane(champs,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            champs.setEditable(true);
            champs.setCaretPosition(0);
            //scrollPaneArea.setPreferredSize(new Dimension(10,70));
            return(scrollPaneArea);
        }
    Alors si jamais il refusait
    scrollPaneArea.setEditable(false);
    scrollPaneArea.setCaretPosition(0);
    et en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    champs.setEditable(false);
    Je ne pouvais plus écrire dans mon JTextArea.

    Maintenant la nuance c'est que j'aimerais enlever le scroll horizontal (ce que j'ai réussi), et que le texte de mon JTextArea revienne automatiquement à la ligne si j'écris trop (que la largeur de mon JTextArea ne varie pas).
    Actuellement j'ai juste un scroll vertical, mais si j'écris trop dans mon champs la ligne continue à se remplir sans retour à la ligne (ni scroll horizontal).

    Merci d'avance

  6. #6
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    textArea.setLineWrap(true);
    textArea.setWrapStyleWord(true);

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/01/2011, 09h28
  2. redimensionnement automatique excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/04/2006, 16h35
  3. Redimensionnement automatique textarea
    Par nico-pyright(c) dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 01/04/2005, 11h48
  4. [C#] [WinForms] Redimensionnement automatique d'une ListView
    Par Phenomenium dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/02/2005, 11h43
  5. [VB6] [Interface] Redimensionnement automatique
    Par ychalan dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/09/2002, 18h32

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