|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Futur Membre du Club
![]() Inscription : février 2010 Messages : 106 ![]() |
Bonjour,
Je suis sous Eclipse Juno (dernière version), j’utilise le plug-in WindowBuilder. J'ai deux questions. La première sur ce plug-in proprement dit et la seconde une question de Java. 1 - Je viens de VB6 et Delphi. Ces IDE sont super. Je ne pense pas la même chose de WindowBuiler. J'ai toute les peines du monde à mettre un simple bouton à l'endroit voulu. C'est une catastrophe. J'ai essayé des layout (AWT et Swing) en tout genre, notamment des GridBagLayout. La philosophie de découper un layout en grille, puis d’accéder et mettre des composant dans les cases de ces grille est pas mal. Sauf que c'est une horreur. De mon point de vue. Question: existe-t-il la possibilité de mettre des composants au pixel près, comme en VB ? Il y a notamment sous Java, des méthode setBounds qui permettent de positionner un composant au pixel près et avec la taille voulu. Sauf que cela ne semble pas marcher sur WindowBuiler. Une solution ? 2- Voila mon code (pas propre, c'est un test): Code :
A la main (sans WindowBuilder), j'ai essayé de mettre un JScrollPane sur un objet JTextArea, lui même dans un container JPanel, lui même dans une JFrame. Lorsque je reviens dans la zone "Design" pour les graphiques, le plug-in WindowBuilder me génère erreur suivante: Citation:
Quelqu'un saurait-il m'indiquer comment faire ? Merci de toute aide. |
|||
|
|
00
|
|
|
#2 |
|
Futur Membre du Club
![]() Inscription : février 2010 Messages : 106 ![]() |
Pour la question 2, j'ai réussi. J'ai ajouté au Panel l'objet ScrollPane avec un GridBagConstraints bien construit. OK.
En revanche pour la question 1, j'émets de sérieux doutes sur le Plug-In WindowBuilder (sans doute n'ai-je pas consacré suffisamment de temps, encore). J'ai refait un peu de source à la main, et j'ai notamment renommé certains objets et lorsque je suis revenu en mode Design, j'ai eu des messages d'erreur indiquant que les noms de variable avaient changé et que la vue en mode Design ne pouvait plus se faire. J'ai arrangé tout cela. Je repose ma question: est-ce que dans WindowBuilder (plug-in) il y a moyen de mettre les composants au pixel près, sans se soucier des layout ? Il y a moyen, en code Java, de mettre de composant où on veut, au pixel près, avec les méthode SetBounds(), mais il semblerait que l'on ne puise pas le faire avec WindowBuilder. Il semblerait que l'usage d'un Layout soit indispensable pour ajouter des composants. Quid ? |
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : août 2004 Messages : 8 633 ![]() |
Placer ses composants au pixel près à grands coups de setBound est une mauvaise pratique en soit.
Redimensionnement impossible en fonction de la taille de la fenêtre. Applications qui d'un système à l'autre, voir même d'un look and feel à l'autre vont proposer des rendus boiteux (en effets, les polices ne prennent pas toutes le même espace et ainsi de suite). Le éléments contenus dans les scrollpane qui n'activent pas le scroll a moins qu'on ne leur set manuellement leur preferredSize. Code spaghetti à moitié unmaintenable... Et ainsi de suite pour les horreurs. Le problème ici, c'est plutôt que tu pars un peu bille en tête dans le GridBagLayout sans vraiment savoir à quoi en correspond les options. (weightx/y, fill, anchor et autres joyeusetés). Puis la bestiole est un poil trop complexe à mon gout pour cette tâche. Par contre, Windowbuilder supporte l'excellent FormLayout, qui lui te laissera un peu plus de marge et de compréhension par rapport à ce que tu fais, et, de plus est vraiment prévu pour tout ce qui est redimensionnement et adaption à touts type d'écrans. Voici un tutoriel concernant son utilisation sous WindowBuilder: https://developers.google.com/java-d...ies_formlayout Un tuto sur le FormLayout en lui même: http://www.thekua.com/rant/2006/02/t...rief-tutorial/ Ainsi qu'une cheat sheet pour ce layout: http://web.archive.org/web/200606131...at%20Sheet.pdf
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something. |
|
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : février 2010 Messages : 106 ![]() |
OK, merci pour les liens.
J'ai une question, non spécifique à WindowBuilder. J esouhaiterais mettre un barre de progression. J'ai essayé le composant JProgressBar mais je n'arrive pas a augmenter sa taille (en largeur. Comment faire ? j'ai essayé toute les méthode, size() and co. No result. Est-ce que il faut la mettre dans un Panel ? |
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : août 2004 Messages : 8 633 ![]() |
Normalement, pas besoin de toucher au méthodes size & cie, c'est le rôle du layout.
Comment places tu ta JProgressBar dans ton Layout?
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something. |
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : février 2010 Messages : 106 ![]() |
Je ne lis tes liens qu'en ce moment, seulement. Les layouts, c'est imbuvable.
Je regrete mon VB. |
|
|
00
|
|
|
#7 |
![]() ![]() |
A mon avis c'est une question d'habitude que je peux comprendre, mais franchement VB ... ce n'est pas trop ca
Une fois les layout maitrisés tu changeras peut être d'avis. Sinon dans windowsbuilder il existe bel et bien le "absolute layout" qui permet de position au pixel près |
|
|
00
|
|
|
#8 | ||
|
Futur Membre du Club
![]() Inscription : février 2010 Messages : 106 ![]() |
Bonsoir,
Je rame. Mon source: Code :
|
||
|
|
01
|
|
|
#9 | ||
![]() ![]() Inscription : août 2004 Messages : 8 633 ![]() |
Tu as mis ton bouton dans la mauvaise case de la grille (sur la même ligne que la JTextArea, une case à droite (3,3) alors qu'il fallait la mettre dans la seconde colonne une ligne en dessous (2,4).
Dessine ton interface sur papier puis trace ta grille par dessus, ça te permettra de voir efficacement où tu dois placer tes composants. De même, afin que ton bouton soit en fin de ligne, iil vaut mieux utiliser LINE_END comme anchor que LINE_START (ça tombe un peu sous le sens). Puis lui affecter un poids nul dans ses paramètres de redimensionnement (weighty mis à 0). Voici la version corrigée. Code :
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something. |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com