2016-10-08 3 views
0

Je sais comment dessiner une image avec Java (avec la méthode paintComponent) mais j'ai un problème: Lorsque je redimensionne le cadre, l'image reste à la même taille, mais je Je veux qu'il augmente sa taille quand j'augmente la taille du cadre, et diminue sa taille quand je diminue la taille du cadre.Dessiner une image avec une taille relative à Panneau

Mon code:

@Override 
public void paintComponent(Graphics graphics) { 
    Graphics2D g = (Graphics2D) graphics; 
    g.drawImage(myImage, x, y, myWidth, myHeight, null); 

} 

Je suis sûr que je dois utiliser la méthode getWidth et getHeight de la classe JPanel, mais je ne sais pas les mathématiques que je dois faire.

J'espère que quelqu'un peut m'aider!

PS: Désolé pour mon mauvais anglais ...

+0

Vous devez choisir combien vous voulez que l'image soit en termes relatifs (comme 80% de largeur de trame), puis [scale it] (http://stackoverflow.com/questions/1729887/little-math-help -pour-image-redimensionner-nécessaire). – BackSlash

+0

override getPreferredSize pour JPanel, des tonnes d'exemples ici et dans le formulaire SSCCE/MCVE – mKorbel

+1

'Je suis sûr que j'ai besoin d'utiliser la méthode getWidth et getHeight de la classe JPanel' - Correct, alors faites-le. Changez simplement votre code pour utiliser cette méthode. Vous devriez aussi utiliser "this" au lieu de "null" pour le dernier paramètre de la méthode drawImage (...). – camickr

Répondre

0

Au lieu d'écrire ce code dans paintComponents, vous pouvez mettre dans la méthode de peinture surchargée d'un JFrame.

De cette façon, lorsque vous redimensionnez la fenêtre, la méthode de peinture est appelée et l'image est redimensionnée.