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

Agents de placement/Fenêtres Java Discussion :

JPanel ne se positionne pas bien


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Points : 34
    Points
    34
    Par défaut JPanel ne se positionne pas bien
    Bonjour à tous,

    J'ai un problème lorsque je mets à jours les coordonnés d'un JPanel à l'intérieur d'un JFrame. Le problème c'est que l'objet que je dessine dans le JPanel se trouve des fois en haut à gauche comme si ses coordonnés était à (0,0) ou que la taille du JPanel était la même que le JFrame ce qui n'est pas vrai selon ce que je crois avoir codé.

    Voici le code pour l'objet JPanel:

    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
     
    public class ObjetVehicule extends JPanel implements MouseListener,
    MouseMotionListener, Runnable{
    ....;
    public ObjetVehicule(ObjetNoeud obNoeud)
    	{
    		currentNoeud= obNoeud;
    		noeudAttache = null;
    		iXCoord = (obNoeud.iXCoord-(LARGEUR/2));
    		firstX = iXCoord;
    		iYCoord = (obNoeud.iYCoord-(HAUTEUR/2));
    		this.setBounds(iXCoord, iYCoord, LARGEUR*2, LARGEUR*2);
    		InputStream input = getClass().getClassLoader().getResourceAsStream("ressources/vehicule.png");
    		try {
    			img = ImageIO.read(ObjetVehicule.class.getResource("/ressources/vehicule.png"));
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		//BufferedImage
    		fAngle = 0;
    		vitesseSimulation = 10;
    		retourner = false;
    		enPause = false;
    		setLayout(null);
     
    	}
     
    	@Override
    	protected void paintComponent(Graphics g)
    	{
    		super.paintComponent(g);
    	    Graphics2D g2D = (Graphics2D) g;
    	    this.setBounds(iXCoord, iYCoord, LARGEUR, HAUTEUR);
    	    setOpaque(false);
    	    g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    	   AffineTransform matrix = g2D.getTransform(); 
    	   g2D.rotate(fAngle);
    	   g2D.drawImage(img, 0, 0, LARGEUR, HAUTEUR, this);
    	   g2D.setTransform(matrix);
    	}
    ...;
    Si vous avez besoin plus de détail n'hésitez pas à me le demander.

    Merci d'avance à tous et à toutes

  2. #2
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2012
    Messages : 149
    Points : 112
    Points
    112
    Par défaut
    tu utilises quel IDE ?

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Comment est placé ton panel dans ta fenêtre ? Quel layout en particulier ?

    Par ailleurs, toujours éviter de mélanger les choses : le dessin, c'est le dessin, et le placement et les dimensions, ce sont le placement et les dimensions ! Je parle du :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setBounds(iXCoord, iYCoord, LARGEUR, HAUTEUR);
    dans ta méthode paintComponent.

    D'une manière générale, isoler les problématiques est plus simple pour les gérer. Le layout du panel devrait être géré par le layoutmanager de son conteneur. Ensuite, tu dessines ce que tu veux dedans, à l'endroit ou tu veux et de la taille que tu veux, sans toucher à la position et aux dimensions du panel.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Points : 34
    Points
    34
    Par défaut
    Pour répondre à toufik135 j'utilise Eclipse Kepler.

    Et pour répondre à joel.drigo, je n'utilise pas les Layout parce que j'ai besoin de déplacer mon JPanel.

    Pour parler précisement ce que c'est, c'est un programme qui permet faire un graph et placer un objet(véhicule)sur le graphe et voir un animation qui permet de voir les Noeud que le véhicule utilise pour passer d'un chemin à un autre.

    Voici où j'en suis avec mon application.

    Nom : ScreenShot021.jpg
Affichages : 53
Taille : 640,9 Ko

    Donc je ne peux pas utiliser les layout parce qu'il faut que mes objets change de place lorsque quelques déplace un Noeud, un seguement ou le véhicule lui même.

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2012
    Messages : 149
    Points : 112
    Points
    112
    Par défaut
    il te lance aucune exception lorsqu'il rapeticit à 0,0 ?

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Points : 34
    Points
    34
    Par défaut
    Non j'ai aucun erreur quelconque je suis sur et certain que j'utilise de quoi pas correctement dans le JPanel ou que je dessine pas au bonne endroit.

    Mais, je me demande si ce que je fais est correct. Je crée un JPanel pour chaque Noeud, pour chaque Segment et pour chaque véhicule. Cependant, je me demande si je ne devrait pas les dessiner sur le même JPanel.

    L'autre problème c'est si je décide de les dessiner tous sur le même JPanel, comment je peux detecter les clique sur un Noeud spécifiquement et sur un Segement spécifiquement parce que je dois être capable de supprimer un Noeud ou un Segment à la demande de l'utilisateur.

  7. #7
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2012
    Messages : 149
    Points : 112
    Points
    112
    Par défaut
    Tu as dis "des fois", tu as pas ciblé à quel moment ça se produit ?
    sinon montre tout le code à la limite ou sinon tu peux essayer JLayeredPane.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Points : 34
    Points
    34
    Par défaut
    Bon j'ai réglé mon problème en utilisant le BorderLayout et je dessine toute sur le même JPanel et je le redessine à chaque fois qu'il y a une changement dans le réseau

    Merci comme même tout le monde qui ont essayé de m'aider

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

Discussions similaires

  1. Div pas bien positionné
    Par typhoon74 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 11/01/2011, 21h29
  2. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  3. JPanel dans un JScrollPane (qui ne défile pas bien)
    Par womannosky dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 11/02/2009, 09h16
  4. J'ai un P4 512 de ram mais ne fct pas bien
    Par savoir dans le forum Composants
    Réponses: 9
    Dernier message: 28/03/2005, 20h14
  5. [THREAD][DAEMON]Pas bien compris....
    Par XristofGreek dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 24/09/2004, 13h28

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