JLabel toujours centré et de la bonne taille

juliodu62138 Messages postés 20 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 10 juin 2005 - 8 juin 2005 à 08:30
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 - 8 juin 2005 à 11:02
Bonjour, voila j'ai un gros probléme. Je dois créer une page imprimable d'une JFrame en y insérant des données (j'utilise des JLabel). Mon Layout est à null, il aut donc que je précise à chaque fois la taille des composants. Le problème c'est que cette taille varie. Moi je voudrais qu'il soit toujours centré et qu'il adopte directement la bonne taille. J'ai déja essayé de créer plusieurs fonctions mais sans succès.
Vous etes mon dernier espoir. Merci.

4 réponses

gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
8 juin 2005 à 09:02
Pourquoi ton Layout est il à null ??
Instancie un Layout, ça ira deja mieux.



Et vu ce que tu veux faire, je te conseille un GridBagLayout




gmi19oj19
0
juliodu62138 Messages postés 20 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 10 juin 2005
8 juin 2005 à 09:20
Mon Layout est à null car je dois placer mes éléments exactement ou je le souhaite. Je peux donc utiliser le setBounds(); et puis je sais pas du tout comment ca marche le GridLayout.
0
cs_mep Messages postés 86 Date d'inscription vendredi 7 mai 2004 Statut Membre Dernière intervention 3 septembre 2008 4
8 juin 2005 à 10:25
GridBagLayout :



monConteneur.add(monTrucAMetreDedans,
new GridBagConstraints(numeroColonne, numeroLigne,
nbrColonne, nbLigne, setendEnX, setendEnY,
GridBagConstraints.WEST (Alignement), GridBagConstraints.HORIZONTAL (elargissement du composant ou non), new Insets(0, 5, 5, 0) (les marges), 0, 0));
0
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
8 juin 2005 à 11:02
> Moi je voudrais qu'il soit toujours centré et qu'il adopte directement la bonne taille.



tu peux utiliser une feinte de l'oeil :



frame.getContentPane().setLAyout( new BorderLayout() );

frame.getContentPane().add( new PanelSep(5,5) , BorderLayout.WEST ) ;

frame.getContentPane().add( new PanelSep(5,5) , BorderLayout.EAST ) ;

frame.getContentPane().add( new PanelSep(5,5) , BorderLayout.SOUTH) ; frame.getContentPane().add( new PanelSep(5,5) , BorderLayout.NORTH) ;

frame.getContentPane().add( TonLabel , BorderLayout.CENTER) ;



class PanelSep extends JPanel {

public PanelSep(int w , int h){

this.setOpaque(false);

this.setPreferedSize(new Dimension(w,h));

}

}



Cette bidouille permet davoir un composant toujours centré avec
la marge voulue par rapport au bord... mais elle ne permet pas de
mettre ses composant ou on veut..

si tu as plusieurs labels, tu met au centre un autre panel dans lequel tu mets tes labels...
0
Rejoignez-nous