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

NetBeans Java Discussion :

Créer des champs texte selon une valeur saisie


Sujet :

NetBeans Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Points : 46
    Points
    46
    Par défaut Créer des champs texte selon une valeur saisie
    Bonjour tout le monde;
    je suis un débutant en java et je veut réaliser un petit soucis;
    j'ai créé un form comportant un bouton et un champ text.
    je veut que lorsque je saisis un nombre dans le champs text(par exemple 3) et je clique sur le bouton OK; alors 3 champs de texte se créeront en bas.
    comment je peut faire SVP.
    j'utilise netbeans 6.9.1
    merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Basiquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i = 0; i<nombreChoisi; i++){
       fenetre.getContentPane().add(new JTextField());
    }
    fenetre.getContentPane().validate(); //force à recalculer les positions
    Maintenant pour récupérer le contenu des nouveaux JTextField plus tard, il faudra les sotcker, par exemple dans une List<JTextField>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (int i = 0; i<nombreChoisi; i++){
       JTextField field = new JTextField();
       listeFields.add(field);
       fenetre.getContentPane().add(field);
    }
    fenetre.getContentPane().validate(); //force à recalculer les positions

  3. #3
    Membre du Club
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Points : 46
    Points
    46
    Par défaut
    bonsoir;
    j'ai fait des tests, mais rien ; j'ai mis le code dans la fonction jButton1ActionPerformed afin que lorsque je clique sur le bouton OK les champs de texte se créent selon le nombre saisi dans le premier champ de texte.
    vous trouverez ci-dessous mon form .
    S'il vos plait, pourriez vous me donner un exemple?

    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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    /*
     * Form1.java
     *
     * Created on 20 juin 2011, 22:04:09
     */
     
    package FRM;
     
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.Font;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
    /**
     *
     * @author alfred
     */
    public class Form1 extends javax.swing.JFrame {
        private Font police;
     
        /** Creates new form Form1 */
        public Form1() {
            initComponents();
        }
     
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {
     
            jLabel1 = new javax.swing.JLabel();
            jLabel2 = new javax.swing.JLabel();
            jTextField1 = new javax.swing.JTextField();
            jTextField2 = new javax.swing.JTextField();
            jLabel3 = new javax.swing.JLabel();
            jButton1 = new javax.swing.JButton();
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     
            jLabel1.setText("N aliment");
     
            jLabel2.setText("N neutr");
     
            jButton1.setText("OK");
            jButton1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jButton1ActionPerformed(evt);
                }
            });
     
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(60, 60, 60)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 163, Short.MAX_VALUE)
                        .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(18, 18, 18)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(jTextField2)
                        .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE))
                    .addGap(83, 83, 83))
                .addGroup(layout.createSequentialGroup()
                    .addGap(150, 150, 150)
                    .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 232, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(146, Short.MAX_VALUE))
                .addGroup(layout.createSequentialGroup()
                    .addGap(194, 194, 194)
                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(224, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(41, 41, 41)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(18, 18, 18)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(46, 46, 46)
                    .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(34, 34, 34)
                    .addComponent(jButton1)
                    .addContainerGap(47, Short.MAX_VALUE))
            );
     
            jLabel1.getAccessibleContext().setAccessibleName("aliment");
            jTextField1.getAccessibleContext().setAccessibleName("text1");
            jTextField2.getAccessibleContext().setAccessibleName("text2");
            jLabel3.getAccessibleContext().setAccessibleName("resultat");
     
            pack();
        }// </editor-fold>                        
     
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
          int nombreChoisi =0;
          Form1 x = new Form1();
            for (int i = 0; i<nombreChoisi; i++){
               //Form1.getContentPane().add(new JTextField());
     
                Component add = x.getContentPane().add(new JTextField());
            }
            //x.getContentPane().validate(); //force à recalculer les positions
           x.getContentPane().validate();
     
        }                                        
     
        /**
        * @param args the command line arguments
        */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Form1().setVisible(true);
                }
            });
        }
     
        // Variables declaration - do not modify                     
        private javax.swing.JButton jButton1;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JLabel jLabel3;
        private javax.swing.JTextField jTextField1;
        private javax.swing.JTextField jTextField2;
        // End of variables declaration                   
     
    }

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Ta méthode n'est pas très logique, on dirait que tu lance du code comme ça sans avoir d'idée de ce que c'est sensé donné, faut essayer de rester logique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
          int nombreChoisi =0; // si tu met 0, tu ne va pas tourner dans ta boucle
          Form1 x = new Form1(); // Tu crée un nouvelle fenetre plutot que d'utiliser l'actuelle, ca n'a pas d'intérêt
            for (int i = 0; i<nombreChoisi; i++){
               //Form1.getContentPane().add(new JTextField());
     
                Component add = x.getContentPane().add(new JTextField()); 
                // vous n'avez pas besoin de la valeur de retour, en plus vous ne la stockez nulle part pour réutilisation ultérieure.
            }
            //x.getContentPane().validate(); //force à recalculer les positions
           x.getContentPane().validate();
     
        }
    Allez, on va essayer d'être un peu logique là
    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
     
        // le stockage des champs supplémentaire, pour pouvoir y avoir accès dans le code
        private List<JTextField> additionalFields = new ArrayList<JTextField>();
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
          int nombreChoisi = Integer.parseInt(textField1.getText()); // on récupère la valeur!      
          for (int i = 0; i<nombreChoisi; i++){
              JTextField field = new JTextField();
              additionalFields.add(field); // on stocke
              getContentPane().add(field); // on ajoute à la fenetre
              // TODO vous utilisez un GroupLayout, ca va être le bordel
              // à l'arrivée, il faut tout repositionner comme c'est fait dans 
              // initComponents()
              // laissé comme exercice.
            }
           getContentPane().validate(); //force le recalcul d'affichage
        }

  5. #5
    Membre du Club
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Points : 46
    Points
    46
    Par défaut
    Bonjour;
    Merci pour votre aide;
    tout d'abord; j'ai mis le code que vous avez écris, mais lorsque j'éxécutes le projet; je saisis bien une valeur dans le champ de text(par exemple 2), mais aucun champ champ de texte se créé !
    Merci à votre patience.

  6. #6
    Membre du Club
    Inscrit en
    Mai 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 128
    Points : 46
    Points
    46
    Par défaut
    Bonsoir tchize_
    prière de me faire une exemplte avec netbeans;
    je suis coincé

  7. #7
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Citation Envoyé par alfred5 Voir le message
    prière de me faire une exemplte avec netbeans;
    je suis coincé
    C'est un peu ce qu'il t'a fourni précédemment.

    Le plus simple serait de montrer ce que toi tu as fait... qu'on débuggue...

Discussions similaires

  1. Remplacement des champs vides par une valeur N/A
    Par dandy87 dans le forum SSIS
    Réponses: 2
    Dernier message: 18/04/2013, 09h58
  2. [AC-2003] Requête SQL retournant des champs différents selon une condition
    Par lucmorin dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/10/2009, 16h13
  3. comparer le contenu d'un champs text avec une valeur
    Par mystro7200 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/07/2008, 10h06
  4. [MySQL] créer un fichier texte selon une structure
    Par pascale86 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/12/2007, 14h44
  5. Cacher un champs texte selon la valeur d'une liste déroulante
    Par ntahi dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/08/2007, 15h46

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