2013-04-16 2 views
0

Je l'utilise pour définir la taille de mon image mise en mémoire tampon.Définir dynamiquement la taille de l'image mise en mémoire tampon

Dimension imgDim = new Dimension(700, 380); 

BufferedImage gridImage = new BufferedImage(imgDim.width, imgDim.height, 
    BufferedImage.TYPE_INT_RGB); 

au lieu de cela, je voudrais définir la taille de l'image en utilisant quelque chose comme:

Dimension imgDim = d; 

BufferedImage gridImage = new BufferedImage(d.width/8, d.height/8, 
    BufferedImage.TYPE_INT_RGB); 

mais je reçois negativeArraySizeException

d est les dimensions de mon JFrame qui Je reçois en utilisant getMaximumSize() la méthode

lorsque j'imprime la valeur de d.width/8 son quelque chose comme 268435455 dont je ne peux pas donner un sens. Y at-il une autre façon de le faire s'il vous plaît aider

Merci

+0

L'utilisation du mot «dynamique» me fait me demander si vous vous attendez à ce que l'image *** reste *** 1/8ème de la taille lorsque le cadre est ** redimensionné. ** Et vous? –

Répondre

1

d est les dimensions de mon JFrame que je reçois en utilisant la méthode getMaximumSize()

Vous obtiendrez d en utilisant la méthode getSize() après vous appelez le pack() méthode ou méthode setSize().

+0

Merci pour la réponse cela fonctionne après que j'appelle la méthode pack() pouvez-vous également s'il vous plaît expliquer ce que ce grand nombre est? – user2224555

0

Vous devez utiliser getSize() au lieu de getMaximumSize(). Si vous n'avez pas setPreferredSize pour votre JFrame, getMaximumSize() retournera un très grand nombre. Voir Component.getMaximumSize()

getSize() retourne votre JFrame's taille actuelle

Voir Component JavaDocs

Questions connexes