Dimensionner un JPanel [Résolu]

Messages postés
53
Date d'inscription
lundi 21 janvier 2008
Dernière intervention
5 mars 2008
- - Dernière réponse : ldumont
Messages postés
53
Date d'inscription
lundi 21 janvier 2008
Dernière intervention
5 mars 2008
- 15 févr. 2008 à 18:45
Bonjour,
j'insère une BufferedImage dans un JPanel et mon problème est que je n'arrive pas à donner la taille souhaitée à mon image.
Que faire sachant que la fonction setPrefferedSize pour une BufferedImage n'existe pas?
Jai un autre problème, c'est que je n'arrive pas à supprimer le layout qui fait que j'ai obligatoirement deux colonnes de taille égale alors que j'aimerais en avoir une qui prenne les trois quarts de ma fenetre.

Merci d'avance
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Messages postés
26
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
14 février 2008
1
Merci
Pour ta 2ème interrogation,
pour supprimer un layout : conteneur.setLayout(null)
Une colonne qui prend les 3/4 de ta fenêtre ca fait en réalité 2 colonnes (une pour les 3/4 et une pour le 1/4 restant)
Normalement tu peux faire ca avec un GridBagLayout

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de lhonolulu
Messages postés
53
Date d'inscription
lundi 21 janvier 2008
Dernière intervention
5 mars 2008
1
Merci
Enfin!!! ça y est, jai réussi : je mets un GridBagLayout qui permet d'utiliser la fonction setPrefferedSize à mon image qui ensuite vient bien prendre 75% de ma fenetre. Mais il faut combiner ce layout et la fonction setPrefferedSize, sinon ça ne marche pas.
Merci de votre aide à tous.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ldumont
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
0
Merci
slt.
Il faudrait que tu "transforme" ton BufferedImage en Image, que tu en récupère ses dimensions, pour les attribuées à ton JPanel, et inserer ton image dans ce panel.
Commenter la réponse de didoux95
Messages postés
53
Date d'inscription
lundi 21 janvier 2008
Dernière intervention
5 mars 2008
0
Merci
oui, j'y avais pensé, mais comment la "transformer" justement sachant que je suis obligée de garder le type BufferedImage pour utiliser MyCanvas pour pouvoir dessiner dessus.
Commenter la réponse de ldumont
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
0
Merci
Pour le layout, il faut que tu choisisse celui qui te convient et que tu l'applique à l'aide de la méthode "setLayout();"
Pour avoir la liste des layout, va voir sur le site de sun (http://java.sun.com/docs/books/tutorial/uiswing/layout/layoutlist.html)
Commenter la réponse de didoux95
Messages postés
53
Date d'inscription
lundi 21 janvier 2008
Dernière intervention
5 mars 2008
0
Merci
Merci lhonolulu mais j'ai testé le GridBaglayout qui aurait du fonctionner effectivement et j'ai du mal m'y prendre paske le JPanel ne voulait plus s'afficher du tout.
Je vais retenter maintenant que tu dis que c'est possible, comme je débute, jai l'impression de faire des choses qui ne fonctionneraient pas, même si le code était le bon. Tu viens de me confirmer que les choses auraient fonctionnées mais que mon code était faux.
Commenter la réponse de ldumont
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Dernière intervention
1 août 2017
0
Merci
va voir ici, il y a plein de choses : http://java.developpez.com/faq/gui/?page=graphique_general_images
Commenter la réponse de didoux95
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
0
Merci
Salut:

Il faut transformer l'image (Aggrandir ou Réduire) pour avoir la bonne taille du JPanel.

Ceci peut se faire à l'aide de la classe AffineTransform pour les deux opérations (Aggrandissement, Réduction).

Ou bien à l'aide de la méthode Image::getScaledInstance() pour réduire la taille de l'image.

Cordialement ...
Commenter la réponse de Ombitious_Developper
Messages postés
53
Date d'inscription
lundi 21 janvier 2008
Dernière intervention
5 mars 2008
0
Merci
J'ai décidé de reprendre mon layout comme le disait lhonolulu, jai donc trouvé un tuto sur le site que tu m'as donné didoux95, mon problème maintenant c'est que j'ai beau modifier tous les paramètres de mon GridBagLayout, rien n'y fait, jai toujours la même disposition....
Commenter la réponse de ldumont
Messages postés
26
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
14 février 2008
0
Merci
Sinon esseye un FlowLayout() qui disposera tes objets de gauche à droite. Donc si ton 1er objet fait 75% de ton conteneur et le 2nd 25% ca devrai se faire tout seul.
Commenter la réponse de lhonolulu
Messages postés
53
Date d'inscription
lundi 21 janvier 2008
Dernière intervention
5 mars 2008
0
Merci
ça jai déjà essayé mais ça ne marche qu'avec des composants comme des label ou des boutons, dès que c'est une image, ça marche plus...
je vais devoir aller en cours.
A bientot!
Commenter la réponse de ldumont
Messages postés
53
Date d'inscription
lundi 21 janvier 2008
Dernière intervention
5 mars 2008
0
Merci
Je suis desespérée....ça fait 2h que je m'acharne avec le GridBagLayout, sans succès.. et pour ce qui est du FlowLayout, impossible d'avoir une occupation 75% 25 % , à chaque fois c'est 50% 50%...
Commenter la réponse de ldumont
Messages postés
26
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
14 février 2008
0
Merci
Le FlowLayout arrange les composants en ligne de gauche à droite. Il n'y pas de taille de cellule dans le Flow, donc c'est que tes deux composants doivent avoir la même taille. Agrandit ton 1er composant.
Pour lme GridBag regarde ces deux liens ca devrai bien t'aider
http://www.infres.enst.fr/~charon/coursJava/interSwing/grille.html (durtout le 1er exemple)
http://forum.hardware.fr/hfr/Programmation/Java/java-gridbaglayout-franchement-sujet_47032_1.htm
Commenter la réponse de lhonolulu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.