[JAVA] Utilité des layouts ?

Utilité des layouts ? [JAVA] - Java - Programmation

Marsh Posté le 21-05-2002 à 21:14:50    

C'est décidé, je vais briser le quasi monopole de Darklord, je me lance dans le Java  :D  
 
Une question m'effleure : je viens de récupérer JBuilder sur le site de Borland, et j'ai commencé à me lancer dans une application toute simple : une DialogBox avec un Hello World qui s'affiche quand on clique sur un bouton (on ne rit pas)
 
Mais je remarque qu'on peut agencer les controles selon différents layout ! Quelle est l'utilité des layouts ? Pourquoi ne pas laisser le choix d'agencer les controles à notre guise ?
 
Une question con, mais bon ....  ;)  
 
A+  :hello:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-05-2002 à 21:14:50   

Reply

Marsh Posté le 21-05-2002 à 21:20:33    

Citation :

C'est décidé, je vais briser le quasi monopole de Darklord, je me lance dans le Java  :D  


 
mais enfin  :cry:  
 

Citation :


Une question m'effleure : je viens de récupérer JBuilder sur le site de Borland, et je me suis dit que c'est vraiment une grosse merde


 
Je suis bien d'accord avec toi :D
 

Citation :


Mais je remarque qu'on peut agencer les controles selon différents layout ! Quelle est l'utilité des layouts ? Pourquoi ne pas laisser le choix d'agencer les controles à notre guise ?  


 
Le modèle Java a été développé comme ca. Ca permet nottamenet à l'application à réagit intelligement au resize de fenetre etc. En gros si ta fenetre a toujours la meme taille tu peux le faire via un layout qui donne les coordonées absolues.
 
En général ce n'est pas souhaité mais je suis le premier à dire que les GUI en Java c'est pas évident (bcp ici sont très fort à ce niveau là mais perso je n'ai jamais rien compris au GUI java, je suis une vrai bouse ;)
 
Bye  :hello:

 

[jfdsdjhfuetppo]--Message édité par DarkLord le 21-05-2002 à 21:21:13--[/jfdsdjhfuetppo]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-05-2002 à 21:29:25    

:lol:  :lol:  :lol:  
Mort de rire pour JBuilder  :D  
J'ai à peine testé, mais il me semble pas si mal que ça ! Mais bon, comme je dis, j'ai à peine testé...  ;)  
 
T'inquietes pas pour ton monopole, c'est pas demain la veille que je te ferais concurrence en Java  :D  
 
Merci en tout cas pour ta réponse, car c'est vrai que quand tu viens de C++ Builder ou Visual C++ et que tu arrives devant la conception de GUI en Java, ça fait tout bizarre...
 
 :hello:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-05-2002 à 21:30:33    

tu m'étonnes. Moi j'ai jamais capté comment faire une GUI propre en Java ;)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-05-2002 à 21:40:45    

ca je sais faire !  :D  
mais les layouts, effectivement c un systeme pratique pour le resize des fenetres, mais si tu n'imbriques pas des panels sur plusieurs niveaux, tu vas avoir des surprises au niveau de l'esthetisme (tres particulier) de ta fenetre quand tu l'agrandiras  :D

Reply

Marsh Posté le 21-05-2002 à 21:41:30    

finalement c'est vachement pourris les GUI en java non?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-05-2002 à 21:42:15    

Oublie JBuilder
 
 
c etait le conseil du jour de Jerry©

Reply

Marsh Posté le 21-05-2002 à 21:42:47    

ben au debut, le temps de piger comment ca marche, on peut dire ca
une fois que t'as saisi le truc, c pas mal, c juste un peu long pour faire un truc joli
(a moins de passer par un AbsoluteLayout, mais il n'est pas fourni en standard)

Reply

Marsh Posté le 21-05-2002 à 21:44:14    

veryfree a écrit a écrit :

Oublie JBuilder
 
 
c etait le conseil du jour de Jerry©  




 
mon prefere c ultraedit :)
c sur que niveau Java il sait pas faire grand chose, mais rien de tel que 10 doigts et un cerveau (non non, le dernier outil n'est pas facultatif  :D ) pour arriver a faire ce que l'on veut
 
sinon pour faire des GUI tu peux tenter NetBeans ou Forte, mais moi j'aime pas trop, et le code généré est tres tres tres tres ... tres laid

Reply

Marsh Posté le 21-05-2002 à 21:45:29    

non arrete c pas pourris
les composants graphic sont assez jolie et puis il suffis de maitrisé l instru
 
dans la FAQ il doit y avoir des pas mal de bon site qui te permettent d apprendre a crée de belle appli
 
mais c clair que 100 lignes de code pour 6 composants c po evident

Citation :

 
  GridBagConstraints userFieldsPanelConstraints = new GridBagConstraints();
  userFieldsPanelConstraints.weightx  = 0;
  userFieldsPanelConstraints.weighty  = 100;
  userFieldsPanelConstraints.insets = new Insets(2,0,2,1);
  userFieldsPanelConstraints.fill  = GridBagConstraints.HORIZONTAL;
  userFieldsPanelConstraints.anchor = GridBagConstraints.SOUTHEAST;
   
  userFieldsPanelConstraints.gridx = 0;
  userFieldsPanelConstraints.gridy = 0;
  userFieldsPanelConstraints.gridwidth = 1;
  userFieldsPanelConstraints.gridheight = 1;
  userFieldsPanel.add(userLabel, userFieldsPanelConstraints);
   
  userFieldsPanelConstraints.anchor = GridBagConstraints.NORTHEAST;
  userFieldsPanelConstraints.gridx = 0;
  userFieldsPanelConstraints.gridy = 1;
  userFieldsPanelConstraints.gridwidth = 1;
  userFieldsPanelConstraints.gridheight = 1;  
  userFieldsPanel.add(passwordLabel, userFieldsPanelConstraints);
   
  userFieldsPanelConstraints.weightx = 100;
  userFieldsPanelConstraints.insets = new Insets(2,1,2,0);
  userFieldsPanelConstraints.anchor = GridBagConstraints.SOUTHWEST;
  userFieldsPanelConstraints.gridx = 1;
  userFieldsPanelConstraints.gridy = 0;
  userFieldsPanelConstraints.gridwidth = 1;
  userFieldsPanelConstraints.gridheight = 1;
  userFieldsPanel.add(userField, userFieldsPanelConstraints);
   
  userFieldsPanelConstraints.anchor = GridBagConstraints.NORTHWEST;
  userFieldsPanelConstraints.gridx = 1;
  userFieldsPanelConstraints.gridy = 1;
  userFieldsPanelConstraints.gridwidth = 1;
  userFieldsPanelConstraints.gridheight = 1;
  userFieldsPanel.add(passwordField, userFieldsPanelConstraints);
   
   
  /*
   * Remplissage des JPanels
   *  -> fieldsPanel
   */
  GridBagConstraints fieldsPanelConstraints = new GridBagConstraints();
  fieldsPanelConstraints.weightx   = 100;
  fieldsPanelConstraints.weighty   = 100;
  fieldsPanelConstraints.insets  = new Insets(3,3,3,3);
  fieldsPanelConstraints.fill  = GridBagConstraints.BOTH;
  fieldsPanelConstraints.anchor  = GridBagConstraints.CENTER;
   
  fieldsPanelConstraints.gridx  = 0;
  fieldsPanelConstraints.gridy  = 0;
  fieldsPanelConstraints.gridwidth = 1;
  fieldsPanelConstraints.gridheight = 1;
  fieldsPanelConstraints.anchor  = GridBagConstraints.NORTH;
  fieldsPanel.add(serverFieldsPanel, fieldsPanelConstraints);
   
  fieldsPanelConstraints.insets  = new Insets(0,20,0,20);
  fieldsPanelConstraints.gridx  = 0;
  fieldsPanelConstraints.gridy  = 1;
  fieldsPanelConstraints.gridwidth = 1;
  fieldsPanelConstraints.gridheight = 1;
  fieldsPanel.add(userFieldsPanel, fieldsPanelConstraints);
   
  fieldsPanelConstraints.fill  = GridBagConstraints.NONE;
  fieldsPanelConstraints.anchor  = GridBagConstraints.CENTER;
  fieldsPanelConstraints.insets  = new Insets(3,3,3,3);
  fieldsPanelConstraints.gridx  = 0;
  fieldsPanelConstraints.gridy  = 2;
  fieldsPanelConstraints.gridwidth = 1;
  fieldsPanelConstraints.gridheight = 1;
  fieldsPanel.add(connectBtn, fieldsPanelConstraints);
   
  /*
   * Ajout des composants  
   */
  connectWindowConstraints.weightx = 100;
  connectWindowConstraints.weighty = 100;
  connectWindowConstraints.insets  = new Insets(0,0,0,0);
  connectWindowConstraints.fill  = GridBagConstraints.BOTH;
  connectWindowConstraints.anchor  = GridBagConstraints.CENTER;
   
  connectWindowConstraints.gridx  = 0;
  connectWindowConstraints.gridy  = 0;
  connectWindowConstraints.gridwidth = 1;
  connectWindowConstraints.gridheight = 1;
  conteneur.add(titleImage, connectWindowConstraints);
   
  connectWindowConstraints.anchor  = GridBagConstraints.SOUTH;
  connectWindowConstraints.gridx  = 0;
  connectWindowConstraints.gridy  = 1;
  connectWindowConstraints.gridwidth = 1;
  connectWindowConstraints.gridheight = 1;
  conteneur.add(fieldsPanel, connectWindowConstraints);

 

[jfdsdjhfuetppo]--Message édité par veryfree le 21-05-2002 à 21:47:11--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 21-05-2002 à 21:45:29   

Reply

Marsh Posté le 21-05-2002 à 21:46:04    

intelliJ  :love:  
 
franchement il est formidable cet IDE. Depuis que je l'utilise je suis vraiment bcp plus rapide.
 
Le meilleur selon moi ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-05-2002 à 21:47:14    

veryfree a écrit a écrit :

non arrete c pas pourris
les composants graphic sont assez jolie et puis il suffis de maitrisé l instru
 
dans la FAQ il doit y avoir des pas mal de bon site qui te permettent d apprendre a crée de belle appli
 
mais c lair que 100 ligne de code pour 6 composants c po evident

Citation :

 
  GridBagConstraints userFieldsPanelConstraints = new GridBagConstraints();
  userFieldsPanelConstraints.weightx  = 0;
  userFieldsPanelConstraints.weighty  = 100;
  userFieldsPanelConstraints.insets = new Insets(2,0,2,1);
  userFieldsPanelConstraints.fill  = GridBagConstraints.HORIZONTAL;
  userFieldsPanelConstraints.anchor = GridBagConstraints.SOUTHEAST;
   
  userFieldsPanelConstraints.gridx = 0;
  userFieldsPanelConstraints.gridy = 0;
  userFieldsPanelConstraints.gridwidth = 1;
  userFieldsPanelConstraints.gridheight = 1;
  userFieldsPanel.add(userLabel, userFieldsPanelConstraints);
   
  userFieldsPanelConstraints.anchor = GridBagConstraints.NORTHEAST;
  userFieldsPanelConstraints.gridx = 0;
  userFieldsPanelConstraints.gridy = 1;
  userFieldsPanelConstraints.gridwidth = 1;
  userFieldsPanelConstraints.gridheight = 1;  
  userFieldsPanel.add(passwordLabel, userFieldsPanelConstraints);
   
  userFieldsPanelConstraints.weightx = 100;
  userFieldsPanelConstraints.insets = new Insets(2,1,2,0);
  userFieldsPanelConstraints.anchor = GridBagConstraints.SOUTHWEST;
  userFieldsPanelConstraints.gridx = 1;
  userFieldsPanelConstraints.gridy = 0;
  userFieldsPanelConstraints.gridwidth = 1;
  userFieldsPanelConstraints.gridheight = 1;
  userFieldsPanel.add(userField, userFieldsPanelConstraints);
   
  userFieldsPanelConstraints.anchor = GridBagConstraints.NORTHWEST;
  userFieldsPanelConstraints.gridx = 1;
  userFieldsPanelConstraints.gridy = 1;
  userFieldsPanelConstraints.gridwidth = 1;
  userFieldsPanelConstraints.gridheight = 1;
  userFieldsPanel.add(passwordField, userFieldsPanelConstraints);
   
   
  /*
   * Remplissage des JPanels
   *  -> fieldsPanel
   */
  GridBagConstraints fieldsPanelConstraints = new GridBagConstraints();
  fieldsPanelConstraints.weightx   = 100;
  fieldsPanelConstraints.weighty   = 100;
  fieldsPanelConstraints.insets  = new Insets(3,3,3,3);
  fieldsPanelConstraints.fill  = GridBagConstraints.BOTH;
  fieldsPanelConstraints.anchor  = GridBagConstraints.CENTER;
   
  fieldsPanelConstraints.gridx  = 0;
  fieldsPanelConstraints.gridy  = 0;
  fieldsPanelConstraints.gridwidth = 1;
  fieldsPanelConstraints.gridheight = 1;
  fieldsPanelConstraints.anchor  = GridBagConstraints.NORTH;
  fieldsPanel.add(serverFieldsPanel, fieldsPanelConstraints);
   
  fieldsPanelConstraints.insets  = new Insets(0,20,0,20);
  fieldsPanelConstraints.gridx  = 0;
  fieldsPanelConstraints.gridy  = 1;
  fieldsPanelConstraints.gridwidth = 1;
  fieldsPanelConstraints.gridheight = 1;
  fieldsPanel.add(userFieldsPanel, fieldsPanelConstraints);
   
  fieldsPanelConstraints.fill  = GridBagConstraints.NONE;
  fieldsPanelConstraints.anchor  = GridBagConstraints.CENTER;
  fieldsPanelConstraints.insets  = new Insets(3,3,3,3);
  fieldsPanelConstraints.gridx  = 0;
  fieldsPanelConstraints.gridy  = 2;
  fieldsPanelConstraints.gridwidth = 1;
  fieldsPanelConstraints.gridheight = 1;
  fieldsPanel.add(connectBtn, fieldsPanelConstraints);
   
  /*
   * Ajout des composants  
   */
  connectWindowConstraints.weightx = 100;
  connectWindowConstraints.weighty = 100;
  connectWindowConstraints.insets  = new Insets(0,0,0,0);
  connectWindowConstraints.fill  = GridBagConstraints.BOTH;
  connectWindowConstraints.anchor  = GridBagConstraints.CENTER;
   
  connectWindowConstraints.gridx  = 0;
  connectWindowConstraints.gridy  = 0;
  connectWindowConstraints.gridwidth = 1;
  connectWindowConstraints.gridheight = 1;
  conteneur.add(titleImage, connectWindowConstraints);
   
  connectWindowConstraints.anchor  = GridBagConstraints.SOUTH;
  connectWindowConstraints.gridx  = 0;
  connectWindowConstraints.gridy  = 1;
  connectWindowConstraints.gridwidth = 1;
  connectWindowConstraints.gridheight = 1;
  conteneur.add(fieldsPanel, connectWindowConstraints);

 




 
c de ca que je parlais quand je disais "un peu long"  :lol:
encore que perso, je suis pas fan du gridbag

 

[jfdsdjhfuetppo]--Message édité par HappyHarry le 21-05-2002 à 21:47:45--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 21-05-2002 à 22:19:17    

veryfree> tu me fais peur avec ton code !!! :heink:  
 
putain, je me mets au Java afin de pouvoir faire des progs sous Linux sans me taper toute la documentation de X-Window, KDE et autres joyeusetés, et je me rends compte que c encore pire apparemment  :cry:  
 
Java semble un langage intéressant, mais si le framework .NET est porté sous Linux, mon choix sera vite fait : le C# et rien d'autre !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-05-2002 à 22:20:22    

Harkonnen a écrit a écrit :

veryfree> tu me fais peur avec ton code !!! :heink:  
 
putain, je me mets au Java afin de pouvoir faire des progs sous Linux sans me taper toute la documentation de X-Window, KDE et autres joyeusetés, et je me rends compte que c encore pire apparemment  :cry:  
 
Java semble un langage intéressant, mais si le framework .NET est porté sous Linux, mon choix sera vite fait : le C# et rien d'autre !  




 
ce qu'il t'a montré c un cas extreme, t pas obligé de faire ca pour faire un truc joli ...

Reply

Marsh Posté le 21-05-2002 à 22:22:37    

regarde des projets libre sur le net tu veras ce qu il en est des interfaces utilisateurs...

Reply

Marsh Posté le 21-05-2002 à 22:23:16    

HappyHarry a écrit a écrit :

 
 
ce qu'il t'a montré c un cas extreme, t pas obligé de faire ca pour faire un truc joli ...  




j'espere bien... je suis en train de décortiquer des sources et c'est vrai que les GUI sont quand meme assez tordues...


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-05-2002 à 22:23:56    

Harkonnen a écrit a écrit :

 
j'espere bien... je suis en train de décortiquer des sources et c'est vrai que les GUI sont quand meme assez tordues...  




 
je confirme mais il me semble néanmoins que c'est faisable


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-05-2002 à 22:24:10    

veryfree a écrit a écrit :

regarde des projets libre sur le net tu veras ce qu il en est des interfaces utilisateurs...  




grilled  :D


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-05-2002 à 22:26:17    

DarkLord a écrit a écrit :

intelliJ  :love:  
 
franchement il est formidable cet IDE. Depuis que je l'utilise je suis vraiment bcp plus rapide.
 
Le meilleur selon moi ...  




je vais tester pour voir


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-05-2002 à 22:27:31    

tu peux ! et si tu as des questions, contacte moi


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-05-2002 à 22:28:37    

pfff... bande de sauvages  ;)

Reply

Marsh Posté le 21-05-2002 à 22:30:45    

:??:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-05-2002 à 22:51:43    

Un seul editeur!!!
windows-user ou linux-user....  [:yaisse1]EMACS[:yaisse2]
 
 
j'arrive trop tard, oki je sors:D

 

[jfdsdjhfuetppo]--Message édité par Ev@nGeLuS le 21-05-2002 à 22:53:01--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 22-05-2002 à 08:10:24    

Ouais, son code, là, c'est un truc de fou!! :D:D (désolé, hein) Mais bon, on peut très bien s'en tirer avec des layouts beaucoup plus simples que le GridBag (tu pourra faire  un peu moins de choses, c'est sûr, mais bon, tu t'en sortira dans 95% des cas)  
Mais bon, les GUI, en Java, franchement, c pas compliqué...Les composants principaux existent, ils sont assez faciles à utiliser quand on a un peu de pratique, et avec beaucoup de pratique, on s'aperçoit qu'ils sont méchamment puissants (JTable, JTextArea, etc, etc...)
 
Ouala, ben bon courage, alors! ;)

Reply

Marsh Posté le 22-05-2002 à 09:02:40    

moi je trouve ca quand même vachement bien foutu les GUI en Java.
 
Au début c'est un peu complexe, mais après tu arrives vraiment à faire ce que tu veux.
 
Et puis d'un point de vue architecture objet, je suis en admiration devant swing. Comment c'est trop fort !!!
 
Y a qu'à voir la puissance du JTable. C'est carrément terrible !
 
Sinon moi non plus je suis pas fan de JBuilder. Ya pas longtemps j'ai essayé defaire une interface graphique, bha c'est la merde. Si tu passes pas par un layout XY, c'est le bordel !
 
Moi mes préférés c'est le BorderLayout et le GridLayout.
Quel dommage qu'il y a ait pas un "FrameLayout" sur lequel on pourrait définir des pourcentages. Un truc du style :  
new FrameLayout(FrameLayout.HORIZONTAL, 30, 70);
 
qui c'est qui veut me le coder ??? :D

Reply

Marsh Posté le 22-05-2002 à 09:10:57    

benou a écrit a écrit :

moi je trouve ca quand même vachement bien foutu les GUI en Java.
 
Au début c'est un peu complexe, mais après tu arrives vraiment à faire ce que tu veux.
 
Et puis d'un point de vue architecture objet, je suis en admiration devant swing. Comment c'est trop fort !!!
 
Y a qu'à voir la puissance du JTable. C'est carrément terrible !
 
Sinon moi non plus je suis pas fan de JBuilder. Ya pas longtemps j'ai essayé defaire une interface graphique, bha c'est la merde. Si tu passes pas par un layout XY, c'est le bordel !
 
Moi mes préférés c'est le BorderLayout et le GridLayout.
Quel dommage qu'il y a ait pas un "FrameLayout" sur lequel on pourrait définir des pourcentages. Un truc du style :  
new FrameLayout(FrameLayout.HORIZONTAL, 30, 70);
 
qui c'est qui veut me le coder ??? :D  




 
C'est un défi?? :D:D Non, sans dec, ce serait pas mal, ton truc... J em'y met quand j'ai un peu de temps! :D:D

Reply

Marsh Posté le 22-05-2002 à 09:38:17    

gfive a écrit a écrit :

 
C'est un défi?? :D:D Non, sans dec, ce serait pas mal, ton truc... J em'y met quand j'ai un peu de temps! :D:D  




 
ouaiss !!!!!! :love:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 22-05-2002 à 09:42:34    

:hap:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed