IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Ajouter des objets sur une Map (image)


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut Ajouter des objets sur une Map (image)
    Salut a tous ,

    Bon voila , j'ai créer un Class qui permet d'ajouter une "map" et qui fait des Zoom sur l'image ajoutée : voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.MediaTracker;
    import java.awt.Panel;
    import java.awt.Toolkit;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionAdapter;
     
    class JImagePanel extends Panel{
    	/**
             * 
             */
    	private static final long serialVersionUID = 5375994938523354306L;
    	private  MediaTracker tracker;
    	private Image img;
    	private Dimension imgSize,iniSize;
    	private int zoom = 0 ;
    	private int	MouseX;
    	private int	MouseY;
    	int transX=0;
    	int transY=0;
     
    	public JImagePanel(String file){
    		//setSize(100,200);
    		img=Toolkit.getDefaultToolkit().getImage(file);
    	setLayout(null);
    		tracker=new MediaTracker(this);
     
    		tracker.addImage(img,0);
     
     
     
     
    		addMouseListener(new MouseAdapter() {
    			@Override
    			public void mousePressed(MouseEvent e) {
    				MouseX = e.getX();
    				MouseY = e.getY();
    			}
    		});
     
    		addMouseMotionListener(new MouseMotionAdapter() {
    			@Override
    			public void mouseDragged(MouseEvent e) {
    				transX += e.getX()-MouseX;
    				transY += e.getY()-MouseY;
    				MouseX = e.getX();
    				MouseY = e.getY();
     
    				repaint();
    			}
    		});
     
    		try{
    			tracker.waitForAll();
    		}
    		catch(Exception ie){}
    		imgSize=iniSize=new Dimension(img.getWidth(this),img.getHeight(this));
    	}
     
     
    	public Dimension getPreferredSize(){
    		return new Dimension(imgSize);
    	}
     
    	public void paint(Graphics g){
    		super.paint(g);
    		if(imgSize.width<=iniSize.width) {
    			imgSize=iniSize; 
    		}
     
    		g.drawImage(this.img, (getWidth()-imgSize.width)/2+transX, (getHeight()-imgSize.height)/2+transY, imgSize.width,imgSize.height,this);
     
     
     
    	}
    	public void zoomIn(){
    		int x=10*imgSize.width/100; 
    		int y=10*imgSize.height/100;
    		imgSize=new Dimension(imgSize.width+x,imgSize.height+y); 
    		if(imgSize.width>iniSize.width){
    			setSize(imgSize);
    			getParent().doLayout();
    		}
    		repaint();
    	}
    	public void zoomOut(){
    		int x=10*imgSize.width/100;
    		int y=10*imgSize.height/100;
    		imgSize=new Dimension(imgSize.width-x,imgSize.height-y);
    		if(getWidth()>iniSize.width)
    		{
    			setSize(imgSize);
    			getParent().doLayout();
     
    		}
    		repaint();
     
    	}
     
    	public int getZoom() {
    		return zoom;
    	}
     
    	public void setZoom(int zoom) {
    		this.zoom = zoom;
    	}
     
     
     
    }
    Aprés cela , j'ai créer une class " myObjet " :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
     
    import java.awt.BorderLayout;
     
    import javax.swing.ImageIcon;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
     
     
    public class myObjet extends JPanel {
     
    	JLabel lblName,lblAct,lblSeuil ;
    	JPanel panelObjet;
     
    	public myObjet(String NameObjet ,double activite  )
    	{
    		ImageIcon img = createImageIcon("images/Source.png");
    		lblName = new JLabel(img);
    		lblAct = new JLabel(String.valueOf(activite));
    		panelObjet = new JPanel();
    		panelObjet.setToolTipText(NameObjet);
    		panelObjet.setLayout(new BorderLayout());
    		panelObjet.add("North",lblName);
    		panelObjet.add("South",lblAct);
    	   add(panelObjet);
    	   isOpaque();
     
     
    	}
     
    	public ImageIcon createImageIcon(String path) {
    		java.net.URL imgURL = getClass().getResource(path);
    		if (imgURL != null) {
    			return new ImageIcon(imgURL);
    		} else {
    			JOptionPane.showMessageDialog(null, "Cette image n'existe pas : " + path, "Erreur", JOptionPane.ERROR_MESSAGE);
    			//  System.err.println("L'image n'est pas dans : " + path);
    			return null;
    		}
    	}
    	public boolean isOpaque()
    	{
    		return true ; 
    	}
    }


    Je voudrais maitenant ajouter cette objet sur la map ( je n'ai pas su le faire ) , j'ai essayé d'ajouter l'objet , en spécifiant les coordonnées mais comme , l'objet est dissocié de la map , l'objet disparait au moment ou je fait une action sur la map .

    Pourriez m'aider a résolver ce probleme : ) ? .

    Merci !.

  2. #2
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut
    Bonjour ,

    Voila j'ai modifié ma class myObjet ,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Graphics;
     
    import javax.swing.ImageIcon;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
     
     
    public class myObjet extends JImagePanel {
     
    	JLabel lblName,lblAct,lblSeuil ;
    	JPanel panelObjet;
     
    	public myObjet(String a )
    	{
    		super(a);
     
    	}
    Cela ma permet de résoudre un probleme c'est que maintenant je peux afficher mes objet sur ma map , mais le probleme , lorsque je translate ma map , l'objet est fixe . Comment faire pour résoudre ce probleme .
    Merci

  3. #3
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut
    Re ,

    Ci-joint : un schéma qui explique mon probleme .

    Merci a vous .
    Images attachées Images attachées  

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Citation Envoyé par Eausport Voir le message
    mais le probleme , lorsque je translate ma map , l'objet est fixe . Comment faire pour résoudre ce probleme .
    Merci
    Bah faut translater l'objet ...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut
    Lorsque je translate l'image , l'objet n'est pas translater , et je veux que l'objet se translate au moment ou je translate mon image . ( je n'ai pas su le faire ! ) .

  6. #6
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Billets dans le blog
    1
    Par défaut
    Slt,
    J'aimerai juste savoir, c'est quoi transleter un objet .
    A+ .

  7. #7
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut
    Même , j'ai appliqué un Héritage sur ma mon objet ( qui hérite de la class map ) , l'objet reste fixe sur le JPanel de la Map , alors que je veux avoir une translation totale ( objet + map ) .

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Citation Envoyé par mohamine1989 Voir le message
    Slt,
    J'aimerai juste savoir, c'est quoi transleter un objet .
    A+ .
    http://fr.wikipedia.org/wiki/Translation_(géométrie)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut
    Là , je teste un truc avec la class TranferHandler , l'avantage est de déplacer un objet d'une source a une destination précise ( récipient de données ) .
    Pour ce qui concerne la translation du label , je n'ai pas encore testé mais je n'ai pas beaucoup de temps ( j'ai des échéances à respecter d’où mes questions sur le forum ) .

    A +

  10. #10
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Billets dans le blog
    1
    Par défaut
    Ok, tient moi au courant de la progression de ton projet, et de la class TranferHandler .
    Bonne chance .
    A+ .

  11. #11
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut
    Salut ,

    Voila ,je viens de me replonger dans ma class JImagePanel ,
    J'ai ajouté l'image dans un JLabel , et j'ai appliqué les translations , donc lorsque je rajoute un objet et je translate l'objet suit la map , objectif pseudo-atteint , car :
    1/- le Zoom n'est plus applicable sur le JLabel comme j'avais avant ;
    2/- Les objets se translatent avec la image mais quand tu effectues une translation et tu ajoutes un objet a un endroit précis de la map , il s'affiche hors contexte .

  12. #12
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2009
    Messages : 209
    Par défaut
    J'ai résolu le problème , je suis passé par un JLabel , j'ai mis la map en setIcon , ensuite pour appliquer les zoom , j'ai fait getImage et j'ai récupéré la methode drawImage en utilisant Graphics2D au lieu de Graphics dans la methode paintComponent() .
    TransformeAffine et scale m’étaient d'une grande utilité .
    Merci a tous .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Positionner des objets sur une image de façon dynamique
    Par derfez dans le forum Silverlight
    Réponses: 4
    Dernier message: 14/11/2011, 09h44
  2. Enlever des objets sur une image
    Par code_source dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 12/01/2011, 14h26
  3. Réponses: 13
    Dernier message: 28/01/2008, 09h27
  4. Dock des objets sur une fenêtre
    Par digital prophecy dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 10/08/2006, 17h14
  5. Réponses: 13
    Dernier message: 09/05/2006, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo