2017-02-21 2 views
-1

S'il vous plaît supprimer ce poste comme mal édité et je l'ai édité à une autre question que je posais comme une nouvelle question. Mercisupprimer ce post s'il vous plaît comme je l'ai édité à tort

+0

Voulez-vous conserver le format de l'image? Quelque chose [comme ceci] (http://stackoverflow.com/questions/11959758/java-maintaining-aspect-ratio-of-jpanel-background-image/11959928#11959928) par exemple? Ou même [quelque chose comme ça] (http://stackoverflow.com/questions/12876615/how-do-i-resize-images-inside-an-application-when-the-application-window-is-resi/12876799# 12876799) – MadProgrammer

+0

Je veux juste que l'image remplisse le panneau (dans l'image fournissez l'est (qui est l'herbe devrait remplir toute la zone de couleur verte.) Cela ne me dérange pas de m'étirer – Samer34

+0

Aussi, ne faites pas référence au 'src 'chemin, il n'existe pas lorsque le projet est empaqueté.In ressource contenue dans le paquet' src', est susceptible d'être intégré dans le fichier jar résultant, le rendant inaccessible comme un fichier, vous devrez utiliser 'Class # getResource' à la place – MadProgrammer

Répondre

1

La réponse dépendra d'un certain nombre de facteurs ...

  • Voulez-vous maintenir le ratio d'aspect?
  • Voulez-vous que l'image remplisse la zone
  • Si vous souhaitez conserver le format d'image, vous souhaitez ajuster ou remplir l'espace disponible.

La solution simple serait d'utiliser Image#getScaledInstance, mais si vous choisissez cette voie, vous devriez avoir une lecture de The Perils of Image.getScaledInstance

BufferedImage eastFramerPicture = ImageIO.read(getClass().getResource("/Images/farmer.png")); 
Image scaled = eastFramerPicture.getScaledInstance(600, 600, Image.SCALE_SMOOTH); 

Vous pouvez également utiliser une bibliothèque comme imgsclr

-1

Essayez d'utiliser setBounds (x, y, width, height);

+0

J'ai essayé eastGrass.setBounds (east.getLocation(). X, centre.getLocation(). Y, centre.getWidth(), centre.getHeight()); Mais cela n'a pas fonctionné, des idées? – Samer34

+0

public usersMenu() { con = MySQLConnect.ConnectDB(); initComponents(); fillList(); jPanel1.setIcon (nouveau javax.swing.ImageIcon (getClass(). GetResource ("/ images/muis.jpg"))); setResizable (false); Dimension dm = Toolkit.getDefaultToolkit(). GetScreenSize(); setBounds (0,0, dm.width, dm.height); jPanel1.setBounds (0,0, dm.width, dm.height); setTitle ("МОНГОЛ УЛСЫН ИХ СУРГУУЛЬ | ТЕСТИЙН СИСТЕМ 1.0 | Хэрэглэгч хэсэг"); //jPanel1.setBounds(dm.width/4, dm.height/4, dm.width/8, dm.height/8); } – ARLEQUINA

1

Consultez le Background Panel. Vous pouvez afficher une image:

  1. à sa taille normale
  2. mis à l'échelle
  3. carrelage

Donc, essayez chaque option pour voir ce que vous aimez le mieux. Vous pouvez également utiliser le Stretch Icon. L'icône de l'étiquette sera mise à l'échelle pour remplir l'espace disponible.

Les deux solutions fournissent du code réutilisable, de sorte que vous n'avez pas besoin d'écrire du code personnalisé chaque fois que vous avez ce type de besoin. Le code est également dynamique et s'ajustera au fur et à mesure que le cadre est redimensionné.

+0

pouvez-vous s'il vous plaît donner un exemple de la façon d'utiliser la classe Stretch? Je lui ai passé l'image et ça n'a rien – Samer34