Tit prob de base avec SWING dans eclipse et JPANEL

Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 - 7 févr. 2006 à 09:13
 super_toinou - 8 févr. 2006 à 10:45
Bonjour,

Je me mets gentillement à java, et avec eclipse, je suis en train de créer une interface utilisateur.

Donc comme on m'a dit, je créé un projet, avec un package, et dans ce package, je crée une "classe" SWING de type JFRAME VISUAL CLASS.

Après j'avais 5 zone distincte dans lesquelles je pouvais placer mes fichiers. haut, bas, gauche, droite et milieu. On m'a dit que c'était parce qu'il fallait que je mette mes composant dans un jpanel, ce que j'ai d'ailleur fait. Mais maintenant au lieu que mes boutons, zone texte, etc se répartisse dans des zones, elles se mettent à la suite, comme si c'était un traitement de texte dans lequel on ajoutait des images...

Donc la je sais pas comment faire. Si vous pouviez m'aider ce serait fort généreux de votre part.

Remerciage!

Nargzul

33 réponses

cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
7 févr. 2006 à 09:27
Il faut gérer le placement des images avec une layout manager.
Le comportement de celui que tu décris est un borderLayout :
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/BorderLayout.html
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
7 févr. 2006 à 09:29
Mais je ne veux pas mettre d'image, pour le moment c'est juste mettre des boutons, les images dans word, c'était juste pour imager ce que faisaient les boutons.

Nargzul
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
7 févr. 2006 à 09:33
Le principe de Swing veut qu'on utiliser des Layouts pour dire à quel
endroit on veut positionner ses contrôles. Ainsi, les contrôles sont
alignés, et redimensionnés automatiquement selon la taille de la
fenêtre (pratique, mais assez contraignant à utiliser !).



Tu as plusieurs types de Layout (BorderLayout, GridBagLayout, CardLayout, etc.)



Va voir dans la doc de sun pour plus de détails, tu y trouvera
rapidement des réponses à tes problèmes de positionnement de contrôles.

_____________________________________________________________________
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
7 févr. 2006 à 09:35
C'est ce que j'avais dit mais avec plus de belles explications ....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
7 févr. 2006 à 09:39
Pardon??? Dans nos cours on avait vu qu'on pouvait juste insérer un élément supplémentaire et après placer nos éléments ou on le voulait la dedans.

C'est un peu du cheni cela je trouve, et non pratique...

je veux par exemple mettre 4 champs de largeur, avec un champ de texte légèrement décalé en bas à droite par exemple, chuis pas dans la m****.

Non sérieux, j'ai souvenir dans les cours qu'on avait eu il y a 1-2 année, que c'était possible, on avait jamais utilisé cela...

Zauriez pas cette solution précise, parce que c'est sur ces cours que je serais évalué...
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
7 févr. 2006 à 09:40
Arf, zart, tu n'avais pas introduit les gridbaglayout, pourtant si pratique ;)

Autre chose pour complèter : pour avoir exactement la disposition que tu cherche il faut bien souvent combiner plusieurs layout, par exemple, ranger tes boutons dans un gridbaglayout, puis intègrer celui-ci dans un borderlayout pour obtenir une barre d'outils de bouton qui sera au nord.

_____________________________________________________________________
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
7 févr. 2006 à 09:43
Si tu veux un cours complet sur Java (avec une grosse partie sur les layouts), je peux te conseiller d'aller lire le cours de JMDooudoux :
http://perso.wanadoo.fr/jm.doudoux/java/

Avec cà, tu arrivera à comprendre rapidement le principe des layouts.

Ta méthode qui consiste à placer les contrôles (il me semble qu'il s'agit d'un absolutlayout) là où tu veux est pratique pour toi, mais pas pour l'utilisateur : les contrôles ne se redimensionnent pas (et se repositionne pas) selon la taille de la fenêtre, du coup, lorsque tu agrandit ta fenêtre, des zones vides apparaissent, et lorsque tu la rétrécit, des contrôles risquent de ne pas être affichés !

_____________________________________________________________________
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
7 févr. 2006 à 09:45
Pour etre franc, je comprend vraiment rien à ce que vous expliquez...

ces trucs de layout... ca me dépasse...

en plus je trouve pas de composant avec le mot layout...

moi j'ai vraiment le souvenir d'un truc ou on insérait seulement un composant et qu'après on disposait comme on voulait nos boutons, labels et co...

La ca ma l'air hyper compliqué... Avec ces bouton de M*** que t'arrive pas à leur donner la taille que tu veux, l'espacement que tu veux et l'emplacement que tu veux...
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
7 févr. 2006 à 09:46
Oui heu bon... les gridbag sont parfois capricieux, je dois dire... Surtout avec les ScrollPane ;)
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
7 févr. 2006 à 09:48
C'est très simple. Je te donne un indice regarde du coté des LAYOUTS MANAGERS ... La programmation c'est long. Cherche dans l'api et arrête de t'ennerver ça ne sert à rien !
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
7 févr. 2006 à 09:49
euuuuuuuuh, c'est ou ca???
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
7 févr. 2006 à 09:53
Putain je t'ai donné un lien tu le suis et après tu remonte vers les peres de ta classe il y aura un how to use !
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
7 févr. 2006 à 09:53
Et tu lis TOUT avant de revenir poser une question !
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
7 févr. 2006 à 10:00
Hey, on se calme déjà... Si je suis la c'est parce que pour le moment eclipse m'est très inconnu(toujours compilé un fichier texte jusqu'a maintenant.

Alors on se calme please... Je suis la pour progresser pas pour me faire gueuler dessus...

je sais meme pas ce que c'est un "père d'une classe" donc calme... et je trouve pas de how to use dans ta page... L'anglais, je comprend la moindre, mais de la à comprendre des trucs du genre "
A border layout lays out a container, arranging and resizing
its components to fit..."

si j'étais un pro de l'anglais je viendrais peut-etre pas ici...
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
7 févr. 2006 à 10:03
Y a des tutos en français cherche dans Google.

Désolé mais avant de poser 25 questions j'ai galéré !
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
7 févr. 2006 à 10:05
ya AUCUN, et c'est bien pour avoir cherché, tuto en francais, sur SWING+eclipse 3.1.

Et la je suis vraiment pas avancé, ce pourquoi je cherche quelqu'un qui saurait me dépanner...
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
7 févr. 2006 à 10:09
Putain eclipse n'a rien à voir avec le code que tu vas cracher...
Je sais je devrais pas mais bon : http://jmdoudoux.developpez.com/java/?page=chapitre_12_creation_avec_awt
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
7 févr. 2006 à 10:13
Parce que c'est dans le code que je dois modifier les truc pour le positionnement??? je comprend plus rien...

en plus ton lien, c'est du AWT, non? on m'a pourtant conseillé de de faire avec swing qui était un peu plus poussé...

C'est possible que ce soie les unités de mon plan de travail qui sont mauvaises? j'ai souvenir qu'il fallait modifier quelque chose dans ce genre la, car j'arrive à un truc ou je peux déplacer mes bouton, mais partout ou je vais avec le bouton ca me dit que je suis en 0,0 donc ca pourrait etre ca aussi le problème, non?

ps, les putains, no probs, ils peuvent rester derrière le clavier
0
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
7 févr. 2006 à 11:20
on m'a dit qu'il fallait mettre un absoluteLayout, mais je le trouve pas sous eclipse, c'est ou?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
7 févr. 2006 à 12:54
Oula, calmez vous un peu, ca sert à rien de s'énerver !

Va voir le lien proposé par Zart : http://jmdoudoux.developpez.com/java/?page=chapitre_12_creation_avec_awt

Il s'agit de awt, mais le principe est exactement le même en swing : tu créer un layout, puis tu rajoute tes contrôles dans le layout, et le layout se débrouille comme un grand pour agencer les contrôles.

En gros, ca donne :

public class MaFrame extends Frame {

public MaFrame() {
super();

setLayout(new BorderLayout());
add(new Button("1"), BorderLayout.NORTH);
add(new Button("2"), BorderLayout.CENTER);
add(new Button("3"), BorderLayout.SOUTH);
pack();
show();
}

public static void main(String[] args) {
new MaFrame();
}
}

_____________________________________________________________________

Avant de poster sur le forum, prière d'aller lire ceci :
c
0
Rejoignez-nous