begin process at 2010 03 19 17:38:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Java2D

 > GÉRER UNE IMAGE COMME UN JPANEL

GÉRER UNE IMAGE COMME UN JPANEL


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Java2D Niveau :Débutant Date de création :09/10/2003 Vu / téléchargé :13 901 / 1 284

Auteur : stb2680

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

 Description

Elle permet d'afficher et de gérer une image comme un JPanel (puisqu'elle en hérite). Il faut JDK 1.4 à cause du package javax.imageio, sinon le recupérer et l'inclure pour des versions antérieurs.
Le doc n'est pas fournie dans le .zip, mais il est possible de la générer avec la commande habituelle.

Source

  • import java.awt.image.*;
  • import javax.imageio.*;
  • import javax.swing.*;
  • import java.awt.*;
  • import java.io.*;
  • /**
  • * Classe ImagePanel:<br>
  • * - charge une image dans un JPanel <br>
  • * - permet de s'en servir par d'autre classe comme un JPanel.<br>
  • * - se sert de la jdk 1.4 à cause du ImageIO.read().
  • * <br>
  • * @author STB2680
  • * @version 1.0 - février 2003<br>
  • */
  • public class ImagePanel extends JPanel
  • {
  • private BufferedImage image;
  • private int w; // largeur de l'image
  • private int h; // hauteur de l'image
  • private int x,y;// coordonnées du coin sup gauche
  • /**
  • * Le constructeur :
  • * @param img le fichier de l'image.
  • * @param x coordonnée x du coin supérieur gauche.
  • * @param y coordonnée y du coin supérieur gauche.
  • * @param width largeur de l'image.
  • * @param height hauteur de l'image.
  • */
  • public ImagePanel(File fileImg,int x,int y,int width,int height)
  • {
  • super();
  • try {
  • image = ImageIO.read(fileImg);
  • } catch (IOException e) {
  • image = null;
  • System.err.println("Fichier invalide");
  • }
  • this.x = x;
  • this.y = y;
  • w = width;
  • h = height;
  • setVisible(true);
  • }
  • /**
  • * Gere l'affichage graphique du JPanel, ainsi que le refraichissement.
  • */
  • public void paintComponent(Graphics g)
  • {
  • super.paintComponent(g);
  • g.drawImage(image,x,y,w,h,null);
  • }
  • /**
  • * Teste la classe.
  • */
  • public static void main(String[] args) {
  • System.out.println("Debut de programme");
  • JFrame w = new JFrame("Essai");
  • File file = new File("presentation.jpg");
  • ImagePanel p = new ImagePanel(file,0,5,500,325);
  • p.setVisible(true);
  • w.getContentPane().add(p);
  • w.setSize(550,375);
  • w.setVisible(true);
  • System.out.println("Fin de programme");
  • }
  • }
import java.awt.image.*;
import javax.imageio.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;


/**
 * Classe ImagePanel:<br>
 * - charge une image dans un JPanel <br>
 * - permet de s'en servir par d'autre classe comme un JPanel.<br>
 * - se sert de la jdk 1.4 à cause du ImageIO.read().
 * <br>
 * @author STB2680
 * @version 1.0 - février 2003<br>
 */
public class ImagePanel extends JPanel
{
	private BufferedImage image;
	private int w;	// largeur de l'image
	private int h;	// hauteur de l'image
	private int x,y;// coordonnées du coin sup gauche

/**
 * Le constructeur :
 * @param img le fichier de l'image.
 * @param x coordonnée x du coin supérieur gauche.
 * @param y coordonnée y du coin supérieur gauche.
 * @param width largeur de l'image.
 * @param height hauteur de l'image.
 */
	public ImagePanel(File fileImg,int x,int y,int width,int height)
	{
		super();
		try {
			image = ImageIO.read(fileImg);
		} catch (IOException e) {
			image = null;
			System.err.println("Fichier invalide");
		}
		this.x = x;
		this.y = y;
		w = width;
		h = height;
		setVisible(true);
	}

/**
 * Gere l'affichage graphique du JPanel, ainsi que le refraichissement.
 */
	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		g.drawImage(image,x,y,w,h,null);
	}

/**
 * Teste la classe.
 */
	public static void main(String[] args) {
		System.out.println("Debut de programme");
		JFrame w = new JFrame("Essai");
		File file = new File("presentation.jpg");
		ImagePanel p = new ImagePanel(file,0,5,500,325);

		p.setVisible(true);
		w.getContentPane().add(p);
		w.setSize(550,375);
		w.setVisible(true);
		System.out.println("Fin de programme");
	}
}

 Conclusion

C'est le première version et pas de bug connu à ce jour.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip OUTILS SUR LES MATRICES

 Sources de la même categorie

Source avec Zip Source avec une capture POINTS LES PLUS PROCHES par xsimo
AFFICHER UNE ÉTOILE AVEC JAVA2D par 2mohamed2
TEXTE AVEC OMBRE par 2mohamed2
Source avec Zip Source avec une capture JBOXIKON PORTAGE DE BOXIKON par ulm950
Source avec Zip Source avec une capture AQUARIUM 2D AVEC DOUBLE-BUFFERING ET EN UTILISANT UNIQUEMENT... par Cornellus1985

Commentaires et avis

Commentaire de gcorbineau le 22/09/2005 14:20:24

Merci pour ce source, Je suis débutant en Java et tu permis de d'avancer dans la gestion des images.(Il n'est pas forcement facile de se dépatouiller de toutes les classes Java).

Commentaire de COLOMBAT le 30/10/2007 14:26:12

1) Où doit être le fichier presentation.jpg?
2) Quel type d'images ce programme peut-il utiliser?

Merci d'avance pour votre aide.

Commentaire de stb2680 le 31/10/2007 14:23:36

1) le fichier presentation.jpg doit être dans le meme repertoire que la classe, si je me souviens bien,
2) pour les types d'images, je ne sais pas, j'ai regardé vite fait dans la doc, et j'ai pas trouvé. Le plus simple c'est d'essayer plusieurs extensions pour voir.

En esperant que cela vous aide.

Commentaire de SpaceHam le 14/12/2009 19:18:01

J'ai pris ta classe afin d'afficher ce JPanel dans mon JFrame. Ça marche numéro un. La différence c'est que j'essaie de pouvoir changer d'image et d'y faire un 'refresh'. Il a l'air a vouloir faire mon refresh mais il reste toujours sur la même image que je lui ai envoyé comme path. plusieurs parlent de la métohde .validated()  mais je n'obtient aucun résultat.

voici la métohde pour ma mise à jour et celle de la création de ton fichier ici-haut :

public void setUpdateUICarte(String p)
{
path = p;
System.out.println("PATH : '"+path+"'");
creationImage(750, 750, true);
this.validate();
}
private ImageJPanel creationImage(int width, int height, boolean refresh)
{
File file = new File(path);
ijp = new ImageJPanel(file,10,10,width,height);
ijp.addMouseListener(cc);
if(refresh)
{
ijp.updateUI();
ijp.validate();
}
else
ijp.setVisible(true);

return ijp;
}

en gros si il faut faire un refresh je demande à ce qu'il update mon ImageJPanel mais ça n'a pas l'air de vouloir le faire fort.

Si tu as une idée reviens moi sur le sujet.

Merci!

Commentaire de stb2680 le 14/12/2009 22:08:47

Je ne fait plus de Java depuis 2003, alors je ne peux pas trop d'aider. Par contre, je pense que ma classe est obsolète avec le package javax.imageio.ImageIO. Est-ce que t'as regardé ?

Commentaire de SpaceHam le 14/12/2009 22:31:54

Disons que j'ai pu trouver une solution à mon problème... en espérant que je ne trouve pas d'autre problème.

Merci tout de même :)

Vive l'essai et erreur.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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,499 sec (4)

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