Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
667 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Layout

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Layout

n°710144
bw_syl
Posté le 27-04-2004 à 19:06:35  profilanswer
 

Bonjour !!
Je cherche a mettre 2 composants au centre d'un JPanel et l'un en dessous de l'autre.
J'ai essayé avec plusieurs layout (not le gridbaglayout mais impossible de centrer la chose) les deux composants sont un JLabel et un que j'ai fait moi méme et qui herite de JPanel.
si vous avez la solution merci. (j'ai cherché toute la journée en vain !!!! :pt1cable:


---------------
pourquoi jamais ca ne va ?
mood
Publicité
Posté le 27-04-2004 à 19:06:35  profilanswer
 

n°710160
jagstang
Pa Capona ಠ_ಠ
Posté le 27-04-2004 à 19:36:27  profilanswer
 

hello,
 
j'ai commencé java il y a 2 semaines. Et il faut dire que c'ets vraiment pas évident au début. essaie de mettre dans un BoxLayout les 2 éléments  
 
http://java.sun.com/j2se/1.3/docs/ [...] ayout.html
 
je résume, un un BoyLayout, avec 2 Panel, qui chacun contient un Jlabel.
 
Je pense que d'autre pourront confirmer (ou pas)

n°710184
R3g
fonctionnaire certifié ITIL
Posté le 27-04-2004 à 20:04:59  profilanswer
 

tout à fait, BoxLayout ; voir aussi la classe Box qui peut en faciliter l'utilisation.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°710390
xiluoc
un pc pour les unirs ....
Posté le 28-04-2004 à 05:35:49  profilanswer
 

Code :
  1. panel.setLayout(new BoxLayout(panel,BoxLayout.PAGE_AXIS));
  2. JLabel label1 = new JLabel("Woot" );
  3. JLabel label2 = new JLabel("WootWoot" );
  4. label1.setAlignmentX(Component.CENTER_ALIGNMENT);
  5. label2.setAlignmentX(Component.CENTER_ALIGNMENT);
  6. //...


n°710728
bw_syl
Posté le 28-04-2004 à 12:54:33  profilanswer
 

J'ai testé ce code mais ca ne fonctionne pas.
Le JLabel est bien centré mais mon autre composant qui herite de JPanel est complétement a gauche.


---------------
pourquoi jamais ca ne va ?
n°710736
R3g
fonctionnaire certifié ITIL
Posté le 28-04-2004 à 13:00:50  profilanswer
 

bw_syl a écrit :

J'ai testé ce code mais ca ne fonctionne pas.
Le JLabel est bien centré mais mon autre composant qui herite de JPanel est complétement a gauche.

Les LayoutManager (en général) utilisent les méthodes getPreferredSize, getMinimumsize et getMaximumSize des composants pour les placer au mieux. Il faut peut-être que tu redéfinisse ces méthodes pour renvoyer les bonnes valeurs.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°710737
bw_syl
Posté le 28-04-2004 à 13:02:15  profilanswer
 

jV voir dans cette direction mais ca risque de ne pas etre evident


---------------
pourquoi jamais ca ne va ?
n°710761
xiluoc
un pc pour les unirs ....
Posté le 28-04-2004 à 13:19:24  profilanswer
 

copie ton code stp.  
tu veus dire que a la place de wootwoot tu as un jpanel ? et il ce centre pas ?

n°710763
bw_syl
Posté le 28-04-2004 à 13:20:31  profilanswer
 

oui c ca G un JPanel et il se centre pas.G pas le code la jlenvoie ce soir.
merci


---------------
pourquoi jamais ca ne va ?
n°710777
xiluoc
un pc pour les unirs ....
Posté le 28-04-2004 à 13:33:40  profilanswer
 

ben ben utilise un border layout le jlabel au north et lautre au centre. mais cest bizarre que le center ne marhce pas pour le jpanel. normalement il herite de component non ?.

mood
Publicité
Posté le 28-04-2004 à 13:33:40  profilanswer
 

n°711303
bw_syl
Posté le 28-04-2004 à 20:10:56  profilanswer
 

oui mais moi j'ai fait un autre composant en quelque sorte qui herite de JPanel


---------------
pourquoi jamais ca ne va ?
n°711313
bw_syl
Posté le 28-04-2004 à 20:40:14  profilanswer
 

voici le code :
 

Code :
  1. import javax.swing.*;
  2. import java.awt.*;
  3. public class Moyenne extends JPanel{
  4.    
  5.     private String nomCarte;
  6.     private int jourNuit;
  7.     private String espece = "essai";
  8.     Moyenne(String nomCarte){
  9. this.nomCarte=nomCarte;
  10. this.construire();
  11.     }
  12.    
  13.     public void construire(){
  14. setLayout(new BoxLayout(this,BoxLayout.PAGE_AXIS));
  15. JLabel espece = new JLabel(aspece);
  16. CreerCarte tempCarte = new CreerCarte(nomCarte,jourNuit,0,1);
  17. Map affCarte = new Map(tempCarte.lectureCarte());
  18. espece.setAlignmentX(Component.CENTER_ALIGNMENT);
  19. affCarte.setAlignmentX(Component.CENTER_ALIGNMENT);
  20. add(espece);
  21. add(affCarte);
  22.     }
  23. }


 
puis :
 

Code :
  1. public class Map extends JPanel{
  2.     public static final int LON = 1016;
  3.     public static final int LAR = 648;
  4.     private float[] dessiner;
  5.     private int jour;
  6.     private int periode;
  7.     //private CreerCarte map;
  8.     private Moyenne map;
  9.     private int debut;
  10.     private int fin;
  11.     boolean zoom;
  12.     private int[] pos = new int[5];
  13.     private JButton button = new JButton("Print" );
  14.     public int xx[] = new int[100];
  15.     public int yy[] = new int[100];
  16.     Map(float[] tab){
  17. this.dessiner=tab;
  18.     }
  19.     Map(String nomCarte,int jour,boolean zoom,int debut,int fin){
  20. //this.nomCarte=nomCarte;
  21. this.jour=jour;
  22. this.zoom=zoom;
  23. this.debut=debut;
  24. this.fin=fin;
  25. addMouseListener(new Souris());
  26.     }
  27.     private float max(float[] tab){
  28. float max=0f;
  29. for(int i=0;i<tab.length;i++){
  30.     if(tab[i]!= Const.ONE && tab[i]!= Const.NOMESURE && tab[i]!= Const.SUPONE && tab[i]!= Const.NEVER){
  31.  if(tab[i]>max){
  32.  max = tab[i];
  33.  }
  34.     }
  35. }
  36. return max;
  37.     }
  38.     private float min(float[] tab){
  39. float min=99999999f;
  40. for(int i=0;i<tab.length;i++){
  41.     if(tab[i]!= Const.ONE && tab[i]!= Const.NOMESURE && tab[i]!= Const.SUPONE && tab[i]!= Const.NEVER && tab[i]>Const.NAN){
  42.  if(tab[i]<min){
  43.  min = tab[i];
  44.  }
  45.     }
  46. }
  47. return min;
  48.     }
  49.    
  50.    
  51.     public void allcarte(Graphics g){
  52. float coefx,coefy;
  53. if(zoom==false){
  54.     coefx = 1;//(float)(this.getSize().getWidth()/LON);
  55.     coefy = 1;//(float)(this.getSize().getHeight()/LAR);
  56. }else{
  57.     coefx=2;
  58.     coefy=2;
  59. }
  60. Terre fondTerre = new Terre();
  61. fondTerre.acquisition();
  62. Long longi = new Long();
  63. Bat200 bat = new Bat200();
  64. Bat4000 bat4 = new Bat4000();
  65. bat.lecture();
  66. bat4.lecture();
  67. float x=24;
  68. float yinit = 176;
  69. float y = yinit;
  70. float temp;
  71. Graphics2D g2 = (Graphics2D)g;
  72. g2.scale(1.0,1.0);
  73. //g.translate(20,20);
  74. //g2.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
  75. g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
  76. Formes f = new Formes();
  77. int parc = 0;
  78. //BarreCouleurs bar = new BarreCouleurs(map.getMax(periode,jour),map.getMin(periode,jour));
  79. BarreCouleurs bar = new BarreCouleurs(max(dessiner),min(dessiner));
  80. parc=0;
  81. pos[0]=(int)x;
  82. pos[1]=(int)y;
  83. for(int i=5;i<37;i++){
  84.     for(int j=2;j<26;j++){
  85.  temp=dessiner[i*26+j];
  86.  g.setColor(new Color(175,238,238));
  87.       g.fillRect((int)x,(int)y,7,7);
  88.       if(temp==-2222.0f){
  89.    g.setColor(new Color(175,238,238));
  90.    g.fillRect((int)x,(int)y,7,7);
  91.      }else{
  92.   if(temp==-5555.0){
  93.       f.losange(g,(int)x,(int)y,coefx,coefy);
  94.   }else{
  95.       if(temp==-9999.0f){
  96.    f.croix(g,(int)x,(int)y,coefx,coefy);
  97.       }else{
  98.        if(temp==-3333.0){
  99.     f.cercle(g,(int)x,(int)y,coefx,coefy);
  100.        }else{
  101.     if(temp==-1.0){
  102.       
  103.         g.setColor(new Color(175,238,238));
  104.         g.fillRect((int)x,(int)y,7,7);
  105.     }else{
  106.         g.setColor(bar.coul(temp));
  107.         g.fillRect((int)x,(int)y,7,7);
  108.     }
  109.       }
  110.       }
  111.   }
  112.      }
  113.     y-=7;
  114.     parc++;
  115.        }
  116.        y=(int)(yinit);
  117.        x+=7;
  118.    }
  119. pos[2]=(int)x;
  120. pos[3]=(int)(y-(25*7));
  121. pos[4]=periode;
  122. //longi.afficher(g,(int)(x-200),(int)y);
  123. //fondTerre.afficher(g,(int)x-258,(int)y);
  124. g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
  125. bat.afficher(g);
  126. fondTerre.afficher(g,0,0);
  127. longi.afficher(g);
  128. Lat lat = new Lat();
  129. lat.afficher(g);
  130. bat4.afficher(g);
  131. bar.barre(g);
  132. // if(periode==2){
  133. //      x=10;
  134. //      yinit+=(int)((300*coefy)+0.5);
  135. //      y=yinit;
  136. //  }else{
  137. //      x+=(int)((40*coefx)+0.5);
  138. //        }
  139. //if(periode==2){
  140. //yinit+=(int)((300*coefy)+0.5);
  141. //y=yinit
  142.     }
  143.     public void paintComponent(Graphics g){
  144. super.paintComponent(g);
  145. allcarte(g);
  146. ....


voila en gros c ca.


---------------
pourquoi jamais ca ne va ?
n°711417
xiluoc
un pc pour les unirs ....
Posté le 29-04-2004 à 00:05:17  profilanswer
 

et si aulieu d etendre jpanel tu fesais un classe normal qui retourne un jpanel.
mais sinon je vois pas trop.

n°711450
Jubijub
Parce que je le VD bien
Posté le 29-04-2004 à 01:13:53  profilanswer
 

j'utilise un vertical layout...ca les aligne verticalement en leur faisant prendre tt la largeur du containeur parent...et tu peux définir la marge entre 2 boites...


---------------
Jubi Photos : Flickr - 500px
n°711457
bw_syl
Posté le 29-04-2004 à 01:45:29  profilanswer
 

comment tu fait ca


---------------
pourquoi jamais ca ne va ?
n°711458
bw_syl
Posté le 29-04-2004 à 01:46:54  profilanswer
 

un vertical layout je veu dire comment tu fait?
ca marchera ac mon cas ?
Je fait un truc qui herite de JPanel pour le faire réafficher automatiquement c'est pas nécessaire ?


---------------
pourquoi jamais ca ne va ?
n°711462
Jubijub
Parce que je le VD bien
Posté le 29-04-2004 à 02:02:55  profilanswer
 

ben le jpanel tu lui attribue comme layout manager le verticalLayout...


---------------
Jubi Photos : Flickr - 500px
n°711682
bw_syl
Posté le 29-04-2004 à 12:53:14  profilanswer
 

et on le trouve ou le vertical layout ? jlé pas vu dans l'api.
et ca va centrer mon composant qui herite de JPanel ?


---------------
pourquoi jamais ca ne va ?
n°711684
myst78
Posté le 29-04-2004 à 12:57:19  profilanswer
 

et pourquoi pas un gridlayout de 1 colonne et 2 lignes ???


---------------
Fleur de métal, entité invulnérable, vêtue tant bien que mal, d'une muraille inébranlable...
n°711690
bw_syl
Posté le 29-04-2004 à 13:02:51  profilanswer
 

je l'avait fait mais j'arrive pas a centrer le 2e composant.


---------------
pourquoi jamais ca ne va ?
n°711692
myst78
Posté le 29-04-2004 à 13:05:44  profilanswer
 

beh ca se centre tout seul en ajoutant non ?  :heink:


---------------
Fleur de métal, entité invulnérable, vêtue tant bien que mal, d'une muraille inébranlable...
n°711704
bw_syl
Posté le 29-04-2004 à 13:21:25  profilanswer
 

bin non justement il reste aligné a gauche alors ke le JLabel se place bien au centre


---------------
pourquoi jamais ca ne va ?
n°711711
R3g
fonctionnaire certifié ITIL
Posté le 29-04-2004 à 13:26:18  profilanswer
 

tu as essayé de définir les getXxxSize() comme je te l'ai suggéré ?


---------------
Au royaume des sourds, les borgnes sont sourds.
n°712176
bw_syl
Posté le 29-04-2004 à 18:48:16  profilanswer
 

oui j'essaye mais ca marche pas


---------------
pourquoi jamais ca ne va ?
n°712191
myst78
Posté le 29-04-2004 à 19:07:57  profilanswer
 

y'a bien une solution toute sale...
tu crees deux panels l'un en dessous de l'autre, et dans chacun tu fais un flowlayout
puis t'ajoutes tes objets dedans, là ils seront centrés :p


---------------
Fleur de métal, entité invulnérable, vêtue tant bien que mal, d'une muraille inébranlable...
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Layout

 

Sujets relatifs
QT Les layout[swing] pb de layout :/
[Struts tiles] inclure un layout dans un layoutBesoin d'avis sur un layout
[Java][Swing] Layout continu d'une fenêtre[swing] hiérarchie de panels et layout [deviens Netbean]
Background picture et Layout transparent dans une fenetre GTKmm...[Java] Layout d'un JMenu
Saut de ligne dans un LAYOUT -> Probleme ![JAVA] Layout.... VERTICAL
Plus de sujets relatifs à : Layout


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR