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

Collection et Stream Java Discussion :

Initialiser la taille d'un tableau par une fenetre graphique


Sujet :

Collection et Stream Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Initialiser la taille d'un tableau par une fenetre graphique
    Bonjour,
    Je débute en java et je ne sais pas bien structurer mes programmes. Tout particulièrement je me demande ce que j'ai le droit de mettre dans un constructeur.
    J'ai créé un petit programme comprenant une classe utilisateur, une classe groupe afin de regrouper mes utilisateurs dans un tableau, et une fenetre jframe pour demander d'entrer le nombre d'utilisateurs. Est ce que je peux appeler la jframe dans le constructeur de ma classe groupe, afin d'initialiser la taille de mon tableau? Est ce que je peux définir mon tableau dans le constructeur?
    voici la classe groupe:

    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 class Groupe {
     
    	private int i=0;
    	private int nbutilisateurs;
     
     
    	public Groupe() {
    		super();
    		FenNbUtilisateurs fennbutil=new FenNbUtilisateurs();
    		nbutilisateurs=fennbutil.getNbutil();
    		 Utilisateur[] tab=new Utilisateur[nbutilisateurs];
    	}
     
     
     
    	public void ajouterUtilisateur(Utilisateur util){
    		//tab.add(util);

    Merci pour votre aide

  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,

    Tu peux bien sûr appeler ta JFrame pour demander la taille du tableau dans le constructeur. Mais ce n'est pas une façon très souple de faire parce que tu lies ta classe à une notion d'UI graphique. Il vaut mieux séparer la partie graphique de la partie traitement, afin d'avoir plus de souplesse.

    Tu peux bien sûr initialiser la taille d'un tableau dans le constructeur. Par exemple (ici ma classe est indépendante de toute notion d'UI ou autre type d'interface (fichier par 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
    public class Exemple {
     
        private final int[] tableau; // un tableau
     
        public Exemple(int taille) {
             tableau = new int[taille]; // on dimensionne le tableau
             remplirTableau(); // il faut bien sûr un moyen de remplir le tableau (ici une méthode dont je ne détaille pas le code)
        }
     
        private void remplirTableau() {
            ...
        }
     
    }
    Et pour l'appeller (ici, j'utilise JOptionPanel.showInputDialog() pour demander la taille du tableau)) :

    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
    public static void main(String[] args) {
     
    		boolean executer=true; // on repose la question tant que executer est true
     
    		String message = "Entrez la taille du tableau :";
    		do {
    			String value = JOptionPane.showInputDialog(null, message, "Mon application", JOptionPane.QUESTION_MESSAGE);
    			if (value==null) {
    				// bouton "Annuler"
    				executer=false;
    			}
    			else {
    				try {
    					int taille = Integer.parseInt(value);
    					if ( taille<1 ) {
    						message = "Entrez la taille du tableau (un nombre supérieur à zéro) :";
    					}
    					else {
    						executerProgramme(taille);
    						executer=false; // plus besoin de poser la question, on peut arrêter le programme
    					}
    				}
    				catch(NumberFormatException e) {
    					// erreur de saisie
    					message = "Entrez la taille du tableau (un nombre supérieur à zéro) :";
    				}
    			}
    		}
    		while (executer);
     
    	}
     
    	private static void executerProgramme(int taille) {
    		Exemple exemple = new Exemple(taille);
                    // etc...
    	}
    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
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    merci!

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 79
    Points : 48
    Points
    48
    Par défaut
    résolu alors ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/02/2008, 00h10
  2. VB6_afficher un tableau par une procedure
    Par PROGDEV2paris dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 24/07/2007, 04h18
  3. Return d'un tableau par une fonction
    Par MegaNono dans le forum C
    Réponses: 4
    Dernier message: 30/04/2006, 18h26
  4. Remplir un tableau par une référence externe
    Par vodevil dans le forum Langage
    Réponses: 1
    Dernier message: 26/03/2006, 16h00
  5. Definir la taille d'un tableau par programmation
    Par Manix dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/06/2005, 11h37

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