Jimage, un composant façon jpanel qui gère une image et un mediatracker

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 131 fois - Téléchargée 27 fois

Contenu du snippet

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 / Exemple :


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é.

A voir également

Ajouter un commentaire

Commentaires

Asrull
Messages postés
79
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
17 novembre 2004
1 -
je te remercie clenio, mais j'ai déjà téléchargé ce doc sur sun
cs_clenio
Messages postés
26
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
28 novembre 2006
-
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 ;).
Asrull
Messages postés
79
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
17 novembre 2004
1 -
-> 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 ?
Asrull
Messages postés
79
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
17 novembre 2004
1 -
-> 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 ?
Asrull
Messages postés
79
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
17 novembre 2004
1 -
-> 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 ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.