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

AWT/Swing Java Discussion :

Utiliser un objet d'une autre fenêtre


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 29
    Points : 23
    Points
    23
    Par défaut Utiliser un objet d'une autre fenêtre
    Bonjour , je travaille sur un projet de gestion de stock .après l'authentification (plusieurs user s'y connecte ) une fenetre s'affiche pour faire une commande d'un article et la commande sera ajouté à la table des commandes (base de données avec mysql ) qui contient une colonne du nom du demandeur , mon problème c'est que le nom du demandeur est celui de l'utilisateur connecté , donc j'ai besoin d'utiliser d'un objet qui se trouve dans une autre classe . j'ai pensée à l'héritage mais je peux pas y recourir vu que la première classe hérite déja de JFrame .
    l'objet dont j'ai besoin est un combobox , et je veux utiliser son cotenu dans une autre classe , est ce que c'est possible ?? Merci d'avance de vos réponses

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par larbiket Voir le message
    Bonjour , je travaille sur un projet de gestion de stock .après l'authentification (plusieurs user s'y connecte ) une fenetre s'affiche pour faire une commande d'un article et la commande sera ajouté à la table des commandes (base de données avec mysql ) qui contient une colonne du nom du demandeur , mon problème c'est que le nom du demandeur est celui de l'utilisateur connecté , donc j'ai besoin d'utiliser d'un objet qui se trouve dans une autre classe . j'ai pensée à l'héritage mais je peux pas y recourir vu que la première classe hérite déja de JFrame .
    l'objet dont j'ai besoin est un combobox , et je veux utiliser son cotenu dans une autre classe , est ce que c'est possible ?? Merci d'avance de vos réponses
    help me plz

  3. #3
    Membre émérite
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Points : 2 814
    Points
    2 814
    Par défaut
    Plop,

    Je ne comprends pas vraiment ta question. Tu veux récupérer la valeur sélectionnée d'un JCombobox ? Si oui, il te suffit d'utiliser la méthode getSelectedItem() qui te renvoie l'objet de la liste sélectionnée par l'utilisateur. Le fait de faire "passer" cette valeur, il te suffit de créer des méthodes faites pour traiter ce cas, donc le choix d'un nom.

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par olivier.pitton Voir le message
    Plop,

    Je ne comprends pas vraiment ta question. Tu veux récupérer la valeur sélectionnée d'un JCombobox ? Si oui, il te suffit d'utiliser la méthode getSelectedItem() qui te renvoie l'objet de la liste sélectionnée par l'utilisateur. Le fait de faire "passer" cette valeur, il te suffit de créer des méthodes faites pour traiter ce cas, donc le choix d'un nom.
    Bonjour , mon problème c'est que ce ComboBox n'est pas dans la même fenêtre (et du coup pas dans la même classe bien sur )

  5. #5
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    tu peux utiliser un listener que tu vas affecter a cette Frame, qui aura pour but d´actualiser la Frame 2.
    Tu as un controlleur central, et un ou deux listeners qui declenchera une action lors du changement de proprieté de ta Combobox.

    Eric

  6. #6
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    [QUOTE=larbiket;7414179] j'ai besoin d'utiliser d'un objet qui se trouve dans une autre classe ./QUOTE]
    Bonjour, j'ai compris ton sujet et je peux intervenir en te proposant ceci:
    Tu crées une variable de classe qui est sensée de récupérer la sélection de ton JCombo.
    Et dans la classe où tu as besoin de récupérer cette valeur, tu saisis simplement le nom de la classe qui contient ton JCombo, suivi d'un point, suivi du nom de la variable que tu avais créée auparavant.
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  7. #7
    Membre averti Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Points : 323
    Points
    323
    Par défaut
    Je pense que la meilleure manière d'opérer est de passer par des écouteurs dans ton contrôleur principal !

    Sinon, il est toujours possible que tu mette dans ta Frame1 une méthode du genre "getSelectedItem" qui te retourne la valeur sélectionnée et qui évite les problèmes d'accès trop "laxistes" de la méthode de MasterMbg (je ne suis absolument pas fan des attributs de classe public, et très peu des static lorsque l'intérêt est juste de ne pas s'embêter pour y accéder).
    Un petit n'est pas de trop si le message est utile

    "Vous êtes très nombreux dans votre cas? J'ai jamais pensé que les cons étaient en minorité..."

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    [quote=MasterMbg;7417227]
    Citation Envoyé par larbiket Voir le message
    j'ai besoin d'utiliser d'un objet qui se trouve dans une autre classe ./QUOTE]
    Bonjour, j'ai compris ton sujet et je peux intervenir en te proposant ceci:
    Tu crées une variable de classe qui est sensée de récupérer la sélection de ton JCombo.
    Et dans la classe où tu as besoin de récupérer cette valeur, tu saisis simplement le nom de la classe qui contient ton JCombo, suivi d'un point, suivi du nom de la variable que tu avais créée auparavant.
    Ca marche pas , la classe ou je veu mettre l'objet ne reconnu pas l'autre classe dont je veux utiliser l'objet

  9. #9
    Membre averti Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Points : 323
    Points
    323
    Par défaut
    C'est surement un problème de visibilité sur ce point.

    Protected : visible par toutes les classes du même package.
    Private : visible uniquement dans la classe.
    Public : porte ouverte à toutes les fenêtres, tout le monde peut y accéder (à condition d'avoir accès à l'objet qui porte l'attribut).

    Moi je te conseil surtout de mettre ton JComboBox private (avec un accesseur public).
    Le controleur principal accède grâce à l'accesseur à la méthode "getSelectedItem" à l'objet concerné.
    Il le passe en suite à ta seconde fenêtre (en paramètre, en affectant directement la valeur à un champ, ...)

    Si c'est bien le soucis que tu as !
    Un petit n'est pas de trop si le message est utile

    "Vous êtes très nombreux dans votre cas? J'ai jamais pensé que les cons étaient en minorité..."

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Je crois que mon problème est clair , j'ai un Jcombobox qui est contenu dans la fenêtre 1 , et je veux l'utiliser dans la fenêtre 2

  11. #11
    Membre averti Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Points : 323
    Points
    323
    Par défaut
    Citation Envoyé par jeffray03 Voir le message
    tu peux utiliser un listener que tu vas affecter a cette Frame, qui aura pour but d´actualiser la Frame 2.
    Tu as un controlleur central, et un ou deux listeners qui declenchera une action lors du changement de proprieté de ta Combobox.

    Eric
    Ce message répond dans ce cas parfaitement.
    Un petit n'est pas de trop si le message est utile

    "Vous êtes très nombreux dans votre cas? J'ai jamais pensé que les cons étaient en minorité..."

  12. #12
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Doopeijii Voir le message
    Ce message répond dans ce cas parfaitement.
    Pourrais tu me donner un exemple , je suis pas vraiment fort dans les actionlistener

  13. #13
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    [quote=larbiket;7419347]
    Citation Envoyé par MasterMbg Voir le message

    Ca marche pas , la classe ou je veu mettre l'objet ne reconnu pas l'autre classe dont je veux utiliser l'objet
    Est-ce que les deux classes se trouvent-elles dans un même package? Parce que chez moi ça marche parfaitement...
    C'est normal que la classe qui contient ton JCombo ne soit pas reconnue lorsqu'elle n'est pas définie dans le même package que la classe qui l'appelle. Dans ce cas de figure, il faudrait importer le package qui la contient dans le fichier de la classe qui l'appelle. Sinon, je te conseillerait de définir les deux classe dans le même emplacement (Package).
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  14. #14
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    les attributs d'instances
    Quand je parle de ça, je ne fais pas allusion aux attributs des instances créées. Mais plutôt aux attributs communs des objets qui seront créés à partir d'une classe.
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  15. #15
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Je ne vois pas trop l’intérêt d'utiliser une variable statique dans ce cas. Le but étant de récupérer le contenu d'un comboBox, on ne pourra pas connaitre la valeur choisie tant que l'utilisateur ne l'a pas sélectionné. Un simple getter suffit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class MaFrame extends JFrame{
     
    // Tes données
     
    public String getSelectedItem(){
        return (String)monComboBox.getSelectedItem();
    }
     
    }
    Tu n'a plus qu'a le récupérer en appelant cette méthode dans ton autre classe.

    Car à chaque instanciation, les valeurs des tous les attributs d'instances sont réunitialisées (Pour ton rappel) ce qui nous permettrait pas une récupération de données dans l'autre classe.
    Par contre j'avoue ne pas comprendre cette phrase. Même si on crée d'autre instance de la classe, les objets déjà instanciés gardent leurs valeurs (heureusement ?)

  16. #16
    Membre averti Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Points : 323
    Points
    323
    Par défaut
    J'ai bien dit que les attributs PUBLIC me dérangeaient particulièrement (quand ils peuvent être évités).
    Et notons un point : à chaque instanciation, les valeurs des attributs sont initialisées POUR l'instance créée et non pour toutes (je pense que tu le sais, mais ce n'est pas clair dans ton message alors pour éviter d'en induire certains autres en erreur...)
    Et je ne renié pas l'utilisation du static en général, mais bien juste dans ce cas ! Il s'agit là d'accéder à une valeur d'un champ lors d'un évènement et rien de plus, d'où l'utilisation d'écouteurs pour récupérer la valeur et la passer à la seconde fenêtre...

    Pour larbiket :

    dans ton controleur tu fais un truc genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    frame1.getJComboBox().addItemListener(new ItemLsitener(
    //Ici la définition d'un ItemListener et les actions à faire
    //a voir si il te faut pas un actionListener je ne sais pas trop (regarde la javadoc
    //et dans une des méthodes t'auras un frame2.setTextTonChamp(item.getValue());
    ));
    Un petit n'est pas de trop si le message est utile

    "Vous êtes très nombreux dans votre cas? J'ai jamais pensé que les cons étaient en minorité..."

  17. #17
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par Nico02 Voir le message
    Par contre j'avoue ne pas comprendre cette phrase. Même si on crée d'autre instance de la classe, les objets déjà instanciés gardent leurs valeurs (heureusement ?)
    C'est exactement ce que j'ai dit. Les variables d'instances sont réunitialisées dans le seul but de création des nouveaux objets. Et cela n'affecte à rien les données des variables des autres objets instances de la même classe.
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  18. #18
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par Doopeijii Voir le message
    Et notons un point : à chaque instanciation, les valeurs des attributs sont initialisées POUR l'instance créée et non pour toutes (je pense que tu le sais, mais ce n'est pas clair dans ton message alors pour éviter d'en induire certains autres en erreur...)
    Ce n'est pas ce que j'ai dit. Peut être que vous ne m'avez pas bien saisi ou je n'ai pas été explicite. La réunitialisation des valeurs des attributs ne se fait que quand on crée une nouvelle instance!!! Je n'ai dit que ça se faisait pour les instances déjà créées...
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  19. #19
    Membre averti Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Points : 323
    Points
    323
    Par défaut
    Oui, je pense qu'on connait bien le fonctionnement mais qu'on ne se comprend juste pas

    Par contre je reste persuadé qu'un attribut static n'est ici pas la bonne méthode !
    Un petit n'est pas de trop si le message est utile

    "Vous êtes très nombreux dans votre cas? J'ai jamais pensé que les cons étaient en minorité..."

  20. #20
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par Doopeijii Voir le message
    Par contre je reste persuadé qu'un attribut static n'est ici pas la bonne méthode !
    Au fait, c'est juste une proposition parce que moi personnellement j'étais aussi buté à ce même blem et après plusieurs temps de réflexion, j'avais utilisé cette méthode et depuis tout tourne à merveille. Ravi d'échanger avec toi.
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/07/2013, 18h45
  2. Utiliser un objet d'une classe java dans une autre
    Par cisco.nat dans le forum Débuter avec Java
    Réponses: 21
    Dernier message: 15/07/2013, 21h24
  3. Récupérer les variables d'une autre fenêtre
    Par chuky dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 20/05/2012, 21h24
  4. [Flex3] Utiliser un objet depuis une autre page MXML
    Par cairon59 dans le forum MXML
    Réponses: 4
    Dernier message: 11/08/2010, 17h50
  5. Récupérer l'adresse d'une autre fenêtre
    Par AlLutun dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/11/2004, 11h19

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