Dimensionner un JPanel [Résolu]

ldumont 53 Messages postés lundi 21 janvier 2008Date d'inscription 5 mars 2008 Dernière intervention - 13 févr. 2008 à 10:48 - Dernière réponse : ldumont 53 Messages postés lundi 21 janvier 2008Date d'inscription 5 mars 2008 Dernière intervention
- 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 

13 réponses

Répondre au sujet
lhonolulu 26 Messages postés jeudi 4 mars 2004Date d'inscription 14 février 2008 Dernière intervention - 13 févr. 2008 à 11:28
+1
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de lhonolulu
ldumont 53 Messages postés lundi 21 janvier 2008Date d'inscription 5 mars 2008 Dernière intervention - 15 févr. 2008 à 18:45
+1
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ldumont
didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 13 févr. 2008 à 11:23
0
Utile
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
ldumont 53 Messages postés lundi 21 janvier 2008Date d'inscription 5 mars 2008 Dernière intervention - 13 févr. 2008 à 11:26
0
Utile
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
didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 13 févr. 2008 à 11:28
0
Utile
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
ldumont 53 Messages postés lundi 21 janvier 2008Date d'inscription 5 mars 2008 Dernière intervention - 13 févr. 2008 à 11:31
0
Utile
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
didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 13 févr. 2008 à 11:32
0
Utile
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
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 13 févr. 2008 à 11:37
0
Utile
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
ldumont 53 Messages postés lundi 21 janvier 2008Date d'inscription 5 mars 2008 Dernière intervention - 13 févr. 2008 à 12:28
0
Utile
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
lhonolulu 26 Messages postés jeudi 4 mars 2004Date d'inscription 14 février 2008 Dernière intervention - 13 févr. 2008 à 12:34
0
Utile
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
ldumont 53 Messages postés lundi 21 janvier 2008Date d'inscription 5 mars 2008 Dernière intervention - 13 févr. 2008 à 12:36
0
Utile
ç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
ldumont 53 Messages postés lundi 21 janvier 2008Date d'inscription 5 mars 2008 Dernière intervention - 13 févr. 2008 à 20:24
0
Utile
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
lhonolulu 26 Messages postés jeudi 4 mars 2004Date d'inscription 14 février 2008 Dernière intervention - 14 févr. 2008 à 11:19
0
Utile
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.