begin process at 2010 03 22 14:21:00
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Swing

 > JIMAGE, UN COMPOSANT FAÇON JPANEL QUI GÈRE UNE IMAGE ET UN MEDIATRACKER

JIMAGE, UN COMPOSANT FAÇON JPANEL QUI GÈRE UNE IMAGE ET UN MEDIATRACKER


 Information sur la source

Note :
8,33 / 10 - par 3 personnes
8,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Swing Niveau :Débutant Date de création :10/06/2004 Vu :6 426

Auteur : Asrull

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Ben voilà, ya deux jours je me suis mis à bosser sur les images, et je n'ai pas trouvé dans swing de classe toute faite pour afficher correctement une image (ça se trouve il y en a une queque part, mais je porte de grosses lunettes). Alors j'en ai fait une. Ca s'utilise comme un JPanel mais avec un nom de fichier en plus. Il y a aussi un MediaTracker pour maîtriser le chargement de l'image.

Source

  • import java.awt.Image;
  • import java.awt.Graphics;
  • import java.awt.Dimension;
  • import java.awt.MediaTracker;
  • import javax.swing.JPanel;
  • public class JImage extends JPanel
  • {
  • private String nomFichier;
  • private Image image;
  • private Dimension dimImage;
  • private MediaTracker tracker;
  • public JImage (String nomFichier)
  • {
  • this.nomFichier=nomFichier;
  • // bien-entendu nomFichier est un chemin absolu sans oublier les "\" de protection sous waindo
  • image=getToolkit().getImage(nomFichier);
  • // on pointe l'image
  • tracker=new MediaTracker(this);
  • tracker.addImage(image,0);
  • // on précise au tracker qu'il doit gérer l'image à l'appel du groupe 0
  • try{tracker.waitForID(0);} catch (InterruptedException e) {}
  • // on déclenche le chargement du groupe 0 et on attend que l'image soit chargée pour passer à la suite
  • dimImage=new Dimension(image.getWidth(this),image.getHeight(this));
  • setPreferredSize(dimImage);
  • // j'initialise la taille du composanr à la taille de l'image
  • }
  • public void paintComponent(Graphics g)
  • {
  • super.paintComponent(g);
  • g.drawImage(image,0,0,this);
  • }
  • public Dimension getSize()
  • {
  • return dimImage;
  • }
  • }
import java.awt.Image;
import java.awt.Graphics;
import java.awt.Dimension;
import java.awt.MediaTracker;
import javax.swing.JPanel;

public class JImage extends JPanel
{
	private String nomFichier;
	private Image image;
	private Dimension dimImage;
	private MediaTracker tracker;

	public JImage (String nomFichier)
	{
		this.nomFichier=nomFichier;
		// bien-entendu nomFichier est un chemin absolu sans oublier les "\" de protection sous waindo
		
		image=getToolkit().getImage(nomFichier);
		// on pointe l'image

		tracker=new MediaTracker(this);
		tracker.addImage(image,0);
		// on précise au tracker qu'il doit gérer l'image à l'appel du groupe 0
		
		try{tracker.waitForID(0);} catch (InterruptedException e) {}
		// on déclenche le chargement du groupe 0 et on attend que l'image soit chargée pour passer à la suite
		
		dimImage=new Dimension(image.getWidth(this),image.getHeight(this));
		setPreferredSize(dimImage);
		// j'initialise la taille du composanr à la taille de l'image
	}

	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		g.drawImage(image,0,0,this);
	}

	public Dimension getSize()
	{
		return dimImage;
	}
}

 Conclusion

que dire de plus ?
Ah si avant de déclencher une polémique genre "Mais elle sert à rien cette classe", je précise que mon objectif c'est de me "bricoler" des classes pour développer relax, et que fatalement toutes mes classes sont inutiles parce qu'on peut tout mettre dans un main et faire aussi bien ( ma conception de l'objet est une conception pépère, je le dit haut et fort et j'en suis fier okay ?!).
Mais par contre si vous avez un moyen de faire ça plus simplement je susi preneur.
Bon celà mis à part je vais certainement revoir le tout pour gérer les exception et peut être (je dis bien peut être) faire un nouveau constructeur pour passer un MediaTracker en param, histoire coordonner les chargement de plusieurs JImages (mais ça semble mal barré.


 Sources du même auteur

Source avec Zip UNE CLASSE TOUTE BÊTE POUR SAUVEGARDER DES OBJETS

 Sources de la même categorie

Source avec une capture COMPTE À REBOURS par Julien39
JLABELIMAGE : GESTION D'UNE IMAGE EN ARRIÈRE-PLAN par bob22mael
Source avec Zip SÉLECTEUR DE DATES MULTIPLES, ORIGINE UHRAND par William44290
RECHERCHE D'ELEMENTS DANS UNE JLIST par Ze_Hulk
Source avec Zip Source avec une capture PROGICIEL DE LOCATION DE VOITURE par SoftDeath

Commentaires et avis

Commentaire de lafoune2 le 10/06/2004 17:48:27

mais si elle est bien ta classe....

Commentaire de PijanaKrava le 10/06/2004 20:15:10

ben c'est une petite classe utilitaire sympathique. De +, j'ai aussi pour habitude de découper les tâches en plusieurs micro tâches : c'est + clair de séparer les choses ;)

Commentaire de Twinuts le 10/06/2004 20:17:39 administrateur CS

franchement.....................si tu poste une source, met une vraie pasque la....... rien que le path de l'image c un peu bidon et pour les exception c pire je crois
bref la note c juste pour l'effort de l'avoir "ecrite" et posté

Commentaire de Dobel le 11/06/2004 13:34:41

-> Twinuts :
on dirait bien que l'aimabilité, c'est pas trop ton fort
le but du forum est avant tout l'entraide, pas l'enfonce
ca commence à devenir agacant
Les exemples de bases ne sont jamais de trop, peut importe ce qui est autour
la charte sous ce que je tape me dit de "rester calme et courtois", tu ne rends pas les choses faciles

Commentaire de lafoune2 le 11/06/2004 16:13:57

-> Dobel :
totalement d'accord avec toi....

Commentaire de Asrull le 14/06/2004 09:19:22

-> Twinuts, à part toi et ton pseudo, je vois rien de bidon ici.
Si tu avais la moindre explication quant à tes propos tu deviendrais un tout petit peu interressant. "le path de l'image c un peu bidon" mais encore ? parce que ça ne me dit toujours pas ce qui te choque.
"les exception c pire", trés bien, ccomme précisé dans mes commentaires je ne les ai pas intégrées (!?! tu arrives à juger un truc que je n'ai pas encore fait !?! , t un balèze toi).
Pour terminer, j'ai passé l'âge où l'on cherche des médailles, je suis pas venu pour passer un test et mes diplômes sont tous bien rangés sous mon canapé, la note tu te la mets où je pense.
je viens ici pour avoir des conseils, pour progresser, et pour éventuellement faire profiter qqun des quelques heures que je passe derrière mon ordi sur java, le tout sur un ton cordial que tu t'évertues à saper.
Juste une dernière question (sui pas du genre mesquin mais là tu me laisses pas le choix) ça t'arrive de partager ton précieux et colossal savoir en nous présentant qqunes de tes sources ? parce que visiblement en un an de présence nuisible (plutôt absence active) sur ce site tu as du nous préparer un truc énorme ?

Commentaire de Asrull le 14/06/2004 09:28:35

-> Aux autres (ceux qui développent) :
j'ai du réécrire getSize(), alors que normalement c une méthode héritée. Elle me sortait (0,0) avant... zavez une idée du pourquoi ça voulais pas ?

Commentaire de Asrull le 14/06/2004 09:45:40

-> Aux autres (ceux qui développent) :
j'ai du réécrire getSize(), alors que normalement c une méthode héritée. Elle me sortait (0,0) avant... zavez une idée du pourquoi ça voulais pas ?

Commentaire de clenio le 17/06/2004 10:36:57

salut Asrull

voila un lien qui peut t'être utile.

http://www.ifitep.jussieu.fr/~bonnaire/api/index.html

c'est une documentation assez complète sur les classes java!
que du bon.
Au passage je fait de la pub pour mon école ;).

Commentaire de Asrull le 17/06/2004 10:43:47

je te remercie clenio, mais j'ai déjà téléchargé ce doc sur sun

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales