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 :

JTextArea qui ne s'affiche pas dans un JPanel


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 39
    Points : 50
    Points
    50
    Par défaut JTextArea qui ne s'affiche pas dans un JPanel
    Bonjour,
    Alors j'ai un JTextField dans lequel je rentre un chiffre ou du texte n'importe. Ensuite je clique sur un bouton. La valeur du JTextField devrait s'envoyé dans un JTextArea situé en dessous. Je voudrais que ce JTextArea ne soit pas éditable et de couleur gris.
    Dans un premier temps j'ai mis mon JTextArea dans un JPanel tout simple, le textArea ne s'affiche pas. Du coup je l'ai mis dans un JScrollPane mais j'ai l'impression que chaque action (couleur ou setter du texte) ne fonctionne pas.

    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
    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
    public class DialogCommands extends JFrame {
     
        private static final long serialVersionUID = 1688086938712980285L;
     
        private JPanel mainPanel = null;
     
        private JPanel northPanel = null;
        private JScrollPane centerPanel = null;
        private JPanel southPanel = null;
     
        private JLabel inputLabel = null;
        private JTextArea textArea = null;
        private JButton buttonExecute = null;
     
        private JTextField textField = null;
     
        private JButton buttonApply = null;
        private JButton buttonCancel = null;
        private JButton buttonClose = null;
     
        public DialogCommands() { // CommandsName in parameter ?
            initComponent();
        }
     
        private void initComponent() {
     
            mainPanel = new JPanel();
     
            northPanel = new JPanel();
            centerPanel = new JScrollPane();
            southPanel = new JPanel();
     
            inputLabel = new JLabel("Input : ");
            textField = new JTextField(20);
            buttonExecute = new JButton("Execute");
     
            textArea = new JTextArea();
            // textArea.setBackground(Color.BLUE);
            textArea.setEditable(true);
     
            buttonApply = new JButton("Apply");
            buttonCancel = new JButton("Cancel");
            buttonClose = new JButton("Close");
     
            mainPanel.setLayout(new BorderLayout());
     
            northPanel.add(inputLabel);
            northPanel.add(textField);
            northPanel.add(buttonExecute);
     
            centerPanel.add(textArea);
     
            southPanel.add(buttonApply);
            southPanel.add(buttonCancel);
            southPanel.add(buttonClose);
     
            mainPanel.add(northPanel, BorderLayout.NORTH);
            mainPanel.add(centerPanel, BorderLayout.CENTER);
            mainPanel.add(southPanel, BorderLayout.SOUTH);
     
            add(mainPanel);
     
            buttonExecute.addActionListener(new ActionListener() {
     
                @Override
                public void actionPerformed(ActionEvent e) {
                    String text = textField.getText();
                    System.out.println("text = " + text);
                    textArea.setText(text);
                }
            });
     
        }
     
        public static void main(String[] args) {
            DialogCommands dialogCommands = new DialogCommands();
            dialogCommands.setTitle("CommandsFrame");
            dialogCommands.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            dialogCommands.setVisible(true);
            dialogCommands.toFront();
            dialogCommands.setLocationRelativeTo(null);
            dialogCommands.setSize(450, 350);
        }
     
    }
    Merci d'avance ! En espérant avoir été clair !

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    1. Tu ne vois pas le JTextArea parce que pour mettre un composant dans un JScrollPane, on n'utilise pas add, mais on fait centerPanel.setViewportView(textArea);
    2. Ensuite, pour rendre non éditable et gris le JTextArea, tu peux faire :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
       
      textArea = new JTextArea();
      textArea.setBackground(null); // en fait, lui donne la couleur du composant dans lequel il se trouve (héritage).
      textArea.setEditable(false);
    3. Pour ajouter le texte saisi quand on appuie "Exécuter", par exemple (tu enlèveras (ou ajouteras) ce que tu veux en fonction du comportement souhaité) :
      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
       
      buttonExecute.addActionListener(new ActionListener() {
       
                  @Override
                  public void actionPerformed(ActionEvent e) {
                      String text = textField.getText();
                      System.out.println("text = " + text);
                      if ( !text.trim().isEmpty() ) { // pour ne prendre en compte que si la saisie n'est pas vide (ou remplie seulement d'espaces)
                         if ( textArea.getDocument().getLength()>0 ) { // si le texte n'est pas vide...
                      	textArea.append("\n"); // ...on ajoute un passage à la ligne
                         }
                         textArea.append(text); // on ajoute le texte saisi à la fin
                         textField.setText(""); // on vide le champ de saisie
                         textField.requestFocus(); // on redonne le focus au champ de saisi
                     }
                  }
              });
      Eventuellement, tu peux mettre à la fin de initComponent() la ligne textField.requestFocus() pour que dès le départ le champ de saisi ait le focus.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 39
    Points : 50
    Points
    50
    Par défaut
    Ça marche parfait, je te remercie pour ta réponse très claire.
    Merci beaucoup !

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 23/01/2007, 15h27
  2. données qui ne s'affichent pas dans le formulaire
    Par zeloutre dans le forum Access
    Réponses: 16
    Dernier message: 04/10/2006, 15h29
  3. Page PHP qui ne s'affiche pas dans le site
    Par cyberdevelopment dans le forum Langage
    Réponses: 2
    Dernier message: 11/08/2006, 11h49
  4. excel: colonne qui ne s'affiche pas dans une liste
    Par fast&furious dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/07/2006, 18h12
  5. Champs qui ne s'affichent pas dans formulaire
    Par capitaine dans le forum Access
    Réponses: 1
    Dernier message: 02/06/2006, 15h00

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