2011-09-26 1 views
2

J'utilise Java Swing pour créer une interface graphique.Faire une image en suivant la taille du cadre

Je dois présenter à l'utilisateur certaines informations imprimées sur des images (qui sont générées au moment de l'exécution sous la forme BufferedImage objets).

Ce que je fais: je mets un JPanel sur mon JFrame, et lorsque le système appelle la méthode paint(Graphics g) je dessine l'image sur g ->(g.drawImage(buffImg,0,0,null)).

La chose que je n'aime pas est: Lorsque je redimensionne le cadre, l'image reste la même, je développe seulement le champ de vision. Je voudrais plutôt faire "étirer" l'image avec le cadre quand je la redimensionne.

Existe-t-il un moyen efficace de le faire? (Je pensais pouvoir créer une nouvelle image redimensionnée, la taille du cadre, chaque fois que je rafraichis les graphiques, mais je met à jour l'image plusieurs fois par seconde, donc ce serait une tâche très lourde ..)

+0

1) utilisation camelCase pour les attributs. 2) Pour la peinture personnalisée dans 'JPanel', remplacez' paintComponent() ', pour la peinture personnalisée dans' JFrame' ..juste pas. Utilisez un 'JComponent' ou' JPanel' 3) * "ce serait une tâche vraiment lourde" * Le profilage bat la spéculation. –

+0

1) right: D 2) c'est ce que je fais, je dessine seulement sur le jpanel, mais comme le gui ne rafraîchit pas l'image quand je le mets à jour, je force la mise à jour comme ceci: 'g = panel.getGraphics() ; panel.paint (g); '... pas élégant mais fonctionne très bien: D – Pronte

Répondre

5

Changement:

g.drawImage(BuffImg,0,0,null): 

pour:

g.drawImage(BuffImg,0,0,getWidth(),getHeight(),this): 
+1

vraiment ne peut pas croire qu'il était si facile .. j'avais lu bien sûr le javadoc pour la classe Graphics, mais j'ai mal compris: i pensé "Dessine autant de l'image spécifiée qui a déjà été mise à l'échelle pour s'adapter à l'intérieur du rectangle spécifié." signifiait "dessine seulement une partie de l'image" merci beaucoup! – Pronte

+1

Pas de soucis. Heureux que vous ayez vérifié les documents de Java (ils sont une excellente ressource, mais il y a des fois que j'ai mal compris ce que je lisais d'eux), et heureux que vous l'ayez trié. :-) –

Questions connexes