A partir d'une autre class [Résolu]

Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
- - Dernière réponse : didoux95
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
- 23 févr. 2007 à 11:04
Bonjour a tous.
j'aurais aimé savoir si il etait possible de :
   a partir d'une classe X (qui n'herite pas de JFrame) ajouter (ou intervenir sur) des composants (du genre JLabel JProgressBar JPanel ...) a une classe Y (qui herite de JFrame). La classe Y appelle la classe X.

Si oui, comment est ce que l'on peut faire (parce que je n'y arrive pas).

merci.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
108
3
Merci
Plutôt un truc du genre :

//Dans la class X
private JProgressBar JPB;

public JProgressBar getJBP(){
    if (JBP == null) {
       JPB = new JProgressBar(0, 100);
       //Et autre "fonction" en lien avc la JPB
       JPB.setBounds(new Rectangle(10, 10, 100, 20));
    }
   return JPB;
}

Afin d'éviter de la créer à chaque appel à la fonction !

Sinon, si ton but est juste de récupèrer une progressbar pour afficher l'avancement d'une opération, il vaux mieux faire une fonction setValue dans ta classe X qui s'occuperai d'incrémenter la progressbar : d'un point de vue d'encapsulation, renvoyer une progressbar, c'est limite !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
5316
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
18 janvier 2019
99
3
Merci
Salut,

ba tu fais une méthode pour le faire.... ex:
private JProgressBar getJBP(){
    if (JBP == null) {
       JPB = new JProgressBar(0, 100);
       //Et autre "fonction" en lien avc la JPB
       JPB.setBounds(new Rectangle(10, 10, 100, 20));
    }
   return JPB;
}
public void setJBPValue(int val){
    getJBP().setvalue(val);
}

et comme ça tu n'appel que la méthode setJBPValue

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Twinuts
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
108
0
Merci
Bien sûr, comment ferais-tu pour intervenir sur les composants de ton interface graphique sinon ?

Il te faut juste faire des accesseurs à tes contrôles de la classe Y, exemple, dans ta classe Y :

private JLabel Toto;

public JLabel getToto() {
    return Toto;
}
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
1
0
Merci
Bonjour.
donc si je veux creer une JProgressBar dans ma class Y a partir de ma class X je devrais faire:
//Dans la class X
private JProgressBar JPB;

public JProgressBar getJBP(){
   JPB = new JProgressBar(0, 100);
   //Et autre "fonction" en lien avc la JPB
   JPB.setBounds(new Rectangle(10, 10, 100, 20));
   return JPB;
}

merci.
Commenter la réponse de didoux95
Messages postés
5316
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
18 janvier 2019
99
0
Merci
Salut,

je rejoins [auteurdetail.aspx?ID=13557 DARKSIDIOUS] 
faut éviter le plus possible de retourner un objet complet sinon il y a risque de bug en chaine

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Commenter la réponse de Twinuts
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
1
0
Merci
Bonjour.
Alors comment est ce que je peux m'y prendre ?
j'avais prevus de (a partir d Y) recuperer une JProgressBar (JBP) et ensuite de lui attribuer une valeur (operation effectuer dans un thread) avec sa methode (.setValue()) depuis la class X.
Ou bien de juste incrementer ma JPB.
(Ce qui me pose probleme, c'est incrementer la JPB car a chaque fois que l'on fait "return" dans une methode, celle ci s'arrete).

merci.
Commenter la réponse de didoux95
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
1
0
Merci
merci.
Commenter la réponse de didoux95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.