Pb de visibilite ou plutot d invisibilite

Signaler
Messages postés
210
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
18 décembre 2003
-
Messages postés
210
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
18 décembre 2003
-
bonjour
j ai cree une frame qui se construit a partir de 3 jpanel
dans chaque jpanel je place un boutton
et j affiche le tout
le pb c est que je ne vois rien pas un seul boutton
pourquoi ? j en sais rien, je solicite donc votre aide afin de resoudre ce pb qui me gene un peu qd mm
merci pour vos suggestions et idees
voici les programmes en questions:

package frame;
import ...etc
/* fenetre principale construite a partir de 3 objets box et d un objet titre (String)
/* cette fenetre est initialise a partir de la methode init
*/

public class FramePrincipalePanel extends JFrame
{
JPanel saisie;
JPanel table;
JPanel outil;
Container content;
BorderLayout bd;

public FramePrincipalePanel(JPanel a, JPanel b, JPanel c, String titre)
{
super(titre);
this.saisie=a;
this.table=b;
this.outil=c;
content=this.getContentPane();
this.bd=new BorderLayout();
}

/*
/* methode init place les 3 objets panel respectivement au nord, centre et sud de la fenetre
/* les espaces est et ouest sont laisses vides
*/
public void init()
{
content.setLayout(bd);
content.add(saisie,"BorderLayout.NORTH");
content.add(table,"BorderLayout.CENTER");
content.add(outil,"BorderLayout.SOUTH");
}
}
--------------------------------------------------------------------
package frame.box;
import ......etc
/* classe jpanel generale
/* on ajoute a ce panel des composants au moyen de la
/*methode ajoutComp()
*/

public class JPanelGenerale extends JPanel
{

FlowLayout fl;

public JPanelGenerale()
{
super();
this.setMinimumSize(new Dimension(180,100));
this.fl = new FlowLayout(FlowLayout.CENTER);
this.setLayout(fl);
this.setVisible(true);
}

/* methode ajoucomp ajoute au container (jpanel) un composant
*/
public void ajoutComp(JComponent c)
{
this.add(c);
System.out.println("\nparam:"+this.paramString());

}
}
--------------------------------------------------------------------
et enfin le programme qui teste tout ca
--------------------------------------------------------------------
import frame.*;
import frame.box.*;
import ....etc
public class FrameTest
{
public static void main(String arg[])
{
JButton bout1 = new JButton("bout1");
JButton bout2 = new JButton("bout2");
JButton bout3 = new JButton("bout3");
Dimension dim = new Dimension(100,50);
bout1.setMinimumSize(dim);
bout2.setMinimumSize(dim);
bout3.setMinimumSize(dim);
JPanelGenerale b1 = new JPanelGenerale();
b1.ajoutComp(bout1);
JPanelGenerale b2 = new JPanelGenerale();
b1.ajoutComp(bout2);
JPanelGenerale b3 = new JPanelGenerale();
b1.ajoutComp(bout3);
FramePrincipalePanel f = new FramePrincipalePanel(b1,b2,b3,"test box frame");
f.setSize(500,500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
-------------------------------------------------------------------
voila c fini
je vous souhaite bonne lecture et un grand merci d avance

:clown) Benohite :-p

8 réponses

Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
salut,
est ce que tu appele ta methode init() qui créé et ajoutes tes boutons ?
Duss
Messages postés
210
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
18 décembre 2003
7
comment passer pour un con en une ligne
oui tu as raison j avais (oups) oublie d appeller la methode init
et dire que ca fait 2h que je cherche la petite bete alors qu il y avais une grosse bevue dans mon prog
je te dis merci pour ce coup d oeil avise

:clown) Benohite :-p
Messages postés
210
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
18 décembre 2003
7
juste une derniere question
j utilisais pour le frame un border layout avec les 3 cstes north, center, south
en principe je dois donc avoir mes 3 panels les uns aux dessous des autres (par consequent les 3 boutton)
or apres rectification(appel de methode init :-) )
je m apercois que les bouttons sont alignes donc pb
je me suis dis que j allais essayer une autre solution
cad un gridlayout sur la frame a 1 col et 3 lignes et normalement ce pb devrais disparaitre
mais re pb ce n est pas le cas
pourtant j ai donne a mes panel une taille minimum cense remplir ( eux 3) le hauteur de la frame
je sollicite donc encore votre aide car j ai deja eu ce pb et n est pas reussi a le resoudre meme en mettant un intervelle de h eleve

:clown) Benohite :-p
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
esayes de faire un pack() de ta fenetre avant de l afficher
Duss
Messages postés
210
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
18 décembre 2003
7
le probleme (encore je sais) est que je ne peux pas utiliser la methode pack car mon programme doit s adapter a la resolution de l ecran, je recupere donc la resolution qui me donnera la taille de la frame
je pense que je vais devoir cree mon propre layout manager
connais tu un site (hormis celui de sun) ou je pourrais trouver des infos la dessus si possible en francais mais je sais bien que les sites java en francais ca ne cours pas les rues surtout les tutoriaux

:clown) Benohite :-p
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
ben ecoute je ne comprend pas trop pkoi ca ne marche pas, je vais re regarder ton code
Duss
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
re
as tu essayé avec un box vertical ?
regarde cette source elle t aidera peut etre
Duss
Messages postés
210
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
18 décembre 2003
7
oui c est d ailleurs avec 3 box que j avais ecris ce programme et j y suis revenu, je vais gere ces 3 box avec un gridbag layout et je pense que ca va coller
d ailleurs j obtiens presque ce que je veux

en tt cas je te remercie pour ton aide

:clown) Benohite :-p

l informatique ca fait plaisir qd ca marche !!