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

AWT/Swing Java Discussion :

Affichage d'un JPane dans un JFrame


Sujet :

AWT/Swing Java

  1. #121
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    salut j'ai une préoccupation sa fais longtemps que tu ne me répond plus j'aimerais savoir comment tu as fais avec le connecteur?
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  2. #122
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Je suis très chargé en ce moment, je vais essayer de voir cela mercredi
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #123
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par junior222 Voir le message
    salut j'ai une préoccupation sa fais longtemps que tu ne me répond plus j'aimerais savoir comment tu as fais avec le connecteur?
    Pourquoi le sujet est-il à l'état résolu si il reste des points en suspend ?
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  4. #124
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    waou mercredi! bref le problème c'est que les délais sont un peux serrés et c'est la dernière partie du projet. entouka si tu peux avoir le temps s'il te plait essaie de regarder sa.
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  5. #125
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    Pourquoi le sujet est-il à l'état résolu si il reste des points en suspend ?
    Oui, je sais mais junior222 a continué son post avec une question qui semblait anodine et qui a généré plusieurs pages de questions / réponses
    Globalement ça peut intéresser d'autres débutants qui ont des problèmes avec le drag and drop.
    Les erreurs et solutions de la discussion sont assez pédagogiques même si par moment on tourne un peu en rond.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  6. #126
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Bon alors c'est simple :
    pour tracer la ligne entre deux ComposantDeplacable, tu as créé un JPanel Connecteur
    mais tu traces la ligne DANS le JPanel Connecteur !
    Donc ça n'affiche rien dans la DropZone

    C'est dans la DropZone qu'il faut utiliser la méthode paintComponent pour tracer ta ligne.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  7. #127
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    bon j'ai fias ce que tu a dit mais j'ai pas toujours de résultats souhaités voilà mes codes:
    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
    package monpackage;
     
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Point;
     
    import javax.swing.JPanel;
     
    public class Connecteur extends JPanel{
    public ComposantDeplacable c1;
    public ComposantDeplacable c2;
    public Point p1;
    public Point p2;
    public DropZone dz;
    	public Connecteur(DropZone d){
    		dz=d;
    		this.setBackground(Color.white);
    	}
    	public void InitierConnexion(ComposantDeplacable c){
    		c1=c;
    		p1.x=c1.getX()+c1.getWidth();
    		p1.y=(c1.x+c1.getHeight())/2;
    	}
    	public void TerminerConnexion(ComposantDeplacable c){
    		c2=c;
    		p2.x=c2.x;
    		p2.y=(c2.y+c2.getHeight())/2;
    		dz.ajouterConnexion(this);
    	}
    }
    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
    package monpackage;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Point;
    import java.awt.datatransfer.DataFlavor;
    import java.util.ArrayList;
    import java.util.Iterator;
     
    import javax.swing.JPanel;
    import javax.swing.TransferHandler;
     
    public class DropZone extends JPanel{
    	ArrayList<ComposantDeplacable> liste;
    	public BareEtat b;
    	public boolean etat;
    	//public String idreseau;
    	public ArrayList<Connecteur> listecon;
    	public DropZone()	{
    		setTransferHandler(new DropTransfertHandler());
    		this.setBackground(Color.white);
    		setLayout(null);
    		liste=new ArrayList<>();
    		//idreseau=nom;
    		listecon=new ArrayList<>();
    	}
    	public void insert(ComposantDeplacable c){
    		liste.add(c);
    		add(c);
    		c.setBounds(c.x, c.y,c.composant.longueur,c.composant.largeur);
    	}
    	public void ModifPosition(ComposantDeplacable c,Point p){
    		c.setBounds(p.x, p.y,c.composant.longueur,c.composant.largeur);
    	}
    	public void ajouterConnexion(Connecteur c){
    		listecon.add(c);
    		add(c);
    		c.setBounds(c.p1.x,c.p1.y,c.p2.x-c.p1.x,c.p2.y-c.p1.y);
    		c.setPreferredSize(new Dimension(c.p2.x-c.p1.x,c.p2.y-c.p1.y));
    		repaint();
    	}
    	public void paintComponent(Graphics g){
    		super.paintComponent(g);
    		for(Iterator<Connecteur> it=listecon.iterator();it.hasNext();)
    		{
    			Connecteur c=(Connecteur)it.next();
    			g.drawLine(c.p1.x, c.p1.y, c.p2.x, c.p2.y);
    		}
    	}
    }
    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
    115
    116
    117
    118
    119
    120
    package monpackage;
     
    import java.awt.Cursor;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.MenuItem;
    import java.awt.Point;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.awt.event.MouseMotionListener;
     
    import javax.swing.JFrame;
    import javax.swing.JMenuItem;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JPopupMenu;
     
    public class ComposantDeplacable extends JPanel implements MouseListener,MouseMotionListener,ActionListener{
    	public Composant composant;
    	public int x,y;
    	public DropZone d;
    	private JPopupMenu menu;
    	private JMenuItem editer;
    	private JMenuItem supprimer;
    	private JMenuItem connexion;
    	private JMenuItem connexion1;
    	private Connecteur con;
    	public BareEtat be;
    	//public Editer ed;
    	//public String idreseau;
    	private java.awt.event.MouseEvent evt_prec = null;
    	public ComposantDeplacable(Composant c,DropZone dz,BareEtat b){
    		composant=c;
    		d=dz;
    		setPreferredSize(new Dimension(composant.longueur,composant.largeur));
    		addMouseListener(this);
    		addMouseMotionListener(this);
    		menu=new JPopupMenu();
    		editer=new JMenuItem("Editer");
    		supprimer=new JMenuItem("Supprimer");
    		connexion=new JMenuItem("Initier Connexion");
    		connexion1=new JMenuItem("Finaliser Connexion");
    		menu.add(editer);
    		menu.add(supprimer);
    		menu.add(connexion);
    		menu.add(connexion1);
    		editer.addActionListener(this);
    		supprimer.addActionListener(this);
    		connexion.addActionListener(this);
    		be=b;
    		//ed=new Editer(nom);
    		con=new Connecteur(d);
    	}
    	public void paintComponent(Graphics g){
    		super.paintComponent(g);					
    		g.drawImage(composant.image, composant.x, composant.y,composant.longueur,composant.largeur,null);
    }
    	@Override
    	public void mouseDragged(MouseEvent e) {
            if (evt_prec == null) {
                evt_prec = e;
                return;
            }
            int dX = e.getX() - evt_prec.getX();
            int dY = e.getY() - evt_prec.getY();
     
            Point loc = new Point(getLocation().x + dX, getLocation().y + dY);
            setLocation(loc);
            d.ModifPosition(this, loc);	
    	}
    	@Override
    	public void mouseMoved(MouseEvent e) {
     
    	}
    	@Override
    	public void mouseClicked(MouseEvent arg0) {
     
    	}
    	@Override
    	public void mouseEntered(MouseEvent e) {
    		be.BareEtatTexte(this.composant.nom);
    		setCursor(new Cursor(Cursor.HAND_CURSOR));
    	}
    	@Override
    	public void mouseExited(MouseEvent arg0) {
    		be.BareEtatTexte("");
     
    	}
    	@Override
    	public void mousePressed(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
    	@Override
    	public void mouseReleased(MouseEvent e) {
    		if(e.isPopupTrigger()){
    			menu.show(this, e.getX(), e.getY());
    		}
     
    	}
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		if(e.getActionCommand().equals("Editer")){
    			//JFrame f=ed.edition(this.composant.nom);
    			//f.setVisible(true);
    		}
    		if(e.getActionCommand().equals("Supprimer")){
    			this.setVisible(false);
    			d.liste.remove(this);
    		}
    		if(e.getActionCommand().equals("Initier connexion")){
    			con.InitierConnexion(this);
    		}
    		if(e.getActionCommand().equals("Finaliser connexion")){
    			con.TerminerConnexion(this);
    		}
    	}
    }
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  8. #128
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    j'ai encore une préoccupation y a t-il pas un moyen de fixer un connecteur au un ComposantDeplacable de tel sorte que lorsqu'on déplace ce composant son connecteur se déplace également?
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  9. #129
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Citation Envoyé par junior222 Voir le message
    j'ai encore une préoccupation y a t-il pas un moyen de fixer un connecteur au un ComposantDeplacable de tel sorte que lorsqu'on déplace ce composant son connecteur se déplace également?
    ça on verra quand tu auras corrigé les erreurs élémentaires suivantes de la classe ComposantDeplacable :
    1) tu as créé connexion1=new JMenuItem("Finaliser Connexion");
    mais tu as oublié de l'ajouter avec addActionListener !
    2) tu as écris :
    if(e.getActionCommand().equals("Finaliser connexion")){
    con.TerminerConnexion(this);
    }
    alors que dans ton JMenuItem il y a "Finaliser Connexion"

    donc pour ces raisons, cela ne se déclenche pas.

    Tu dois trouver ce genre de petit bugs toi-même en traçant les différentes étapes d'exécution.
    (utilise System.out.println("l'étape que je veux tracer"); pour identifier les endroits effectivement utilisés par ton code)
    Sinon on perd un temps considérable et ton dossier n'avance pas.

    Après correction, tu verras une jolie java.lang.NullPointerException dans la classe Connecteur
    il concerne le Point p2. Je te laisse deviner pourquoi ça marche pas.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  10. #130
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    oui merci beaucoup je vais suivre ton conseille dorénavant je n'avais pas mis ceci dans le constructeur du connecteur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		p1=new Point();
    		p2=new Point();
    jusque là le connecteur ne se trace pas comme souhaité lorsque j'ajoute ceci dans le constructeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setBackground(Color.black);
    lorsque je finalise la connexion un rectangle noir apparait comme prévu mais pas à l'endroit prévu petite modification dans la classe connecteur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	public void InitierConnexion(ComposantDeplacable c){
    		c1=c;
    		p1.x=c1.getX()+c1.getHeight();
    		p1.y=c1.y+(c1.getWidth()/2);
    	}
    	public void TerminerConnexion(ComposantDeplacable c){
    		c2=c;
    		p2.x=c2.x;
    		p2.y=c2.y+(c2.getHeight()/2);
    		dz.ajouterConnexion(this);
    	}
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  11. #131
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    getHeight = la hauteur du composant
    getwidth = la largeur

    les coordonnées sur l'écran (pour un objet Point) sont mesurées
    x = position GAUCHE
    y = position HAUTE
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  12. #132
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    les coordonnées sur l'écran (pour un objet Point) sont mesurées
    x = position GAUCHE
    y = position HAUTE
    tu peut expliquer d'avantage s'il te plait?
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  13. #133
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Si tu fais un point situé dans un JPanel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Point p = new Point(50,120);
    cela veut dire que ce point est situé :
    50 pixels à droite du bord gauche du JPanel
    120 pixels sous la bordure haute du JPanel
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  14. #134
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Solution simple et propre qui a été proposée dans le thread initial.

    N'utiliser qu'un unique composant Swing et tout dessiner dessus.

    Et surtout se passer des toute la hiérarchie JComponent pour les objets à dessiner.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  15. #135
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Citation Envoyé par sinok Voir le message
    N'utiliser qu'un unique composant Swing et tout dessiner dessus.
    Si on n'utilise que du dessin, on perd toute possibilité de cliquer sur les composants pour déclencher des évènements pour les déplacements et les lignes de connexion entre les composants.

    On peut, bien sûr y arriver avec du dessin. Cependant, cela nécessite de gérer des tableaux d'objets qui vont contenir les datas des composants et de détecter les clics sur leur représentation.
    Au bout du compte, on aurait re-créé Swing !

    Le problème de junior222 est qu'il est débutant et qu'il a beaucoup de mal à situer les endroits où pêche son code.
    C'est pourquoi je l'ai orienté dans une direction où chaque composant a sa responsabilité.
    Il est beaucoup plus facile d'y détecter les erreurs de drag and drop par exemple ou bien de voir qu'il n'a pas initialisé un objet Point.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  16. #136
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    et pour le connecteur je fais comment je crois que les modifications que j'ai faite sont bonne en plus le trait ne se trace pas
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  17. #137
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Comme je te le disais, commence par vérifier que le paintComponent s'exécute bien avec les bonnes coordonnées
    et comme on ne va pas passer Noël là-dessus, tu vas corriger dans DropZone la méthode ajouterConnexion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        public void ajouterConnexion(Connecteur c) {
            listecon.add(c);
    // à supprimer ça ne sert à rien et ça fausse les coordonnées
    //        add(c);
    //        c.setBounds(c.p1.x, c.p1.y, c.p2.x - c.p1.x, c.p2.y - c.p1.y);
    //        c.setPreferredSize(new Dimension(c.p2.x - c.p1.x, c.p2.y - c.p1.y));
            repaint();
        }
    après cela, tu verras au moins un trait se tracer ... il n'ira pas dans la bonne direction et tu devras trouver comment corriger les coordonnées.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  18. #138
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    oui apatament le problème n'est pas au niveau des coordonnées parce que je me rend compte que le premier point est toujours le coin supérieur gauche du dropzone et je me dit que ce le premier composant ne s'initialise pas ou perd son initialisation parce qu'on finalise la connexion sur un autre composant je ne sais pas si c'est mieux de mettre un MouseListener,MouseMotionListener sur le dropzone plutôt pour effectuer ces manipulations?
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  19. #139
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Non, reste sur ton système de coordonnées.
    Cette fois, tu as bien identifié le problème.
    Il faut simplement que tu places ton connecteur ailleurs que dans le ComposantDeplacable.
    une piste : dans ta DropZone, tu as un tableau des connecteurs.
    quand tu initialises une connexion, tu places ton nouveau connecteur dans ce tableau.
    quand tu finalises ta connexion, tu vas chercher le dernier élément du tableau
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  20. #140
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    cela reviens à utiliser 2 connecteurs pour relier 2 composants si je ne me trompe? si oui il faut donc modifier la classe connecteur
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 7 sur 9 PremièrePremière ... 3456789 DernièreDernière

Discussions similaires

  1. Problème d'affichage d'un JPanel dans un JFrame.
    Par Patrick95500 dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 18/09/2014, 13h51
  2. Affichage d'un JLabel dans une JFrame
    Par Christophe39 dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 17/02/2014, 13h41
  3. Affichage de différents JPanel dans une JFrame
    Par PROJECT-AURORA dans le forum Débuter
    Réponses: 13
    Dernier message: 16/11/2013, 11h22
  4. Ajout et affichage d'un JPanel dans une JFrame lorsqu'un évènement se produit
    Par bilou_12 dans le forum Agents de placement/Fenêtres
    Réponses: 0
    Dernier message: 27/03/2012, 20h27
  5. [pdf][jframe] affichage d'un PDF dans un JFrame
    Par r.matha dans le forum Documents
    Réponses: 3
    Dernier message: 06/10/2006, 15h00

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