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

2D Java Discussion :

dessiner des arbres avec java


Sujet :

2D Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 12
    Points
    12
    Par défaut dessiner des arbres avec java
    Bonjour, je suis un débutant en java et je dois programmer des arbres de décisions, je veux savoir quelle bibliothèque dois-je utiliser jgraph ou java 2d ou autres et comment télécharger ces bibliothèques en connaissant que je travail avec éclipse

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    JGraph on va dire est une couche au dessus de Java2D. (raccourcis)

    Si tu utilises Java2D, tu vas devoir tout developper.

    A mon avis, il serait interessant de voir pour JGraph histoire que tu n'ais pas à t'occuper de la gestion/dessin de ton arbre etc.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    merci pour l'aide je crois aussi que jgraph est plus simple mais pouvez vous m'envoyez un guide d'utilisation interssant pour jgraph ce que j'ai vu ne permet pas de connaitre comment on l'utilise avec eclipse

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    As tu bien lu la documentation http://www.jgraph.com/pub/jgraphmanual.pdf qui contient quelques exemples ? (Indépendant de ta plateforme de developement cf eclipse).

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    voila, je suis de retour, apres avoir lu ce tutorial, javais le probleme suivant dans mon code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for(int i=2;i<=5;i++)
    		{
     
    		cells[i] = new DefaultGraphCell(new String("World"));
     
    		}
    l'erreur suivant saffiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
    	at MyPackage.HelloWorld.main(HelloWorld.java:37)
    remarque que cet commande travail sans boucle mais moi jai besoin d'un boucle alors koi faire??????

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Poste le code de l'initialisation de ton tableau (ou de tout) un coup ?

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    merci pour la réponse mais pouvez vous expliquez mieux ce que je dois faire je suis débutante avec jgraph

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    en faite quel tableau vous voulez que je passe en code?

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    C'est à dire que ton bout de code ne me semble pas faux.

    Mais il manque la partie superieur (celle ou tu initialises ton tableau cells[] par exemple, ce qui à mon avis cause ton probleme ?!).
    Poste le code complet de ta source (si celle ci ne fait pas 5000 lignes

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    voila j'ai oublié d'intialiser mon tableau cells mnt ça marche
    merci pour l'aide

  11. #11
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Me disait bien que c'etait ca

  12. #12
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    désolé c'était une faute de mal concentration.
    mais maintenent jai un nouveau problème:
    voici mon code de création de graphe
    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
     
    public  JGraph getGraph()
    	{
    		//Déclarations des variables nécessaires
    			actions=rows-2;
    			outcome=cols-1; 
    			int width=10;
    			int height=10;
    			int i,j,k;
     
    		//Déclaration du graphe
    			GraphModel model = new DefaultGraphModel();
    			GraphLayoutCache view = new GraphLayoutCache(model,new DefaultCellViewFactory());
    			JGraph graph = new JGraph(model, view);
     
    	/*----------------------C'est la partie uncertaine de larbre-------------------------------*/
    		//Déclaration des variables nécessaires
     
    			nbpayoff=actions*outcome;
    			int nb1=nbpayoff+actions;
    			int ne1=actions*outcome;
    			int np1=(actions*2)+nbpayoff+1;
    			String max=String.valueOf(maxprofit);
     
    		//Construction du sous arbre de décision uncertain 
     
    			DefaultGraphCell[] cellschoix1 = new DefaultGraphCell[actions+1];
    			DefaultPort[] portchoix1 = new DefaultPort[(actions+1)*2];
    			DefaultGraphCell[] cellsfeuille1 = new DefaultGraphCell[actions*outcome];
    			DefaultPort[] portfeuille1 = new DefaultPort[actions*outcome];
    			//DefaultPort[] port = new DefaultPort[np1];
     
    		//Construction des noeud nécessaires
    			/*Construction des noeud principale*/
    				cellschoix1[0] = new DefaultGraphCell(new String(max));
    				GraphConstants.setBounds(cellschoix1[0].getAttributes(), new Rectangle2D.Double(20,100,60,20));
    				GraphConstants.setGradientColor(cellschoix1[0].getAttributes(),Color.ORANGE);
    				GraphConstants.setOpaque(cellschoix1[0].getAttributes(), true);
    				portchoix1[0] = new DefaultPort();
    				cellschoix1[0].add(portchoix1[0]);
    				portchoix1[1] = new DefaultPort();
    				cellschoix1[0].add(portchoix1[1]);
    			/*Construction des noeud de choix*/
    		for(i=0;i<actions;i++)
    		{
     
    			try{
    				height=height+40;
     
    			cellschoix1[i+1] = new DefaultGraphCell(new String(String.valueOf(profit[i])));
    			GraphConstants.setBounds(cellschoix1[i].getAttributes(), new Rectangle2D.Double(100,height,40,20));
    			GraphConstants.setGradientColor(cellschoix1[i].getAttributes(),Color.ORANGE);
    			GraphConstants.setOpaque(cellschoix1[i].getAttributes(), true);
    			for(j=0;j<2;j++){
    			portchoix1[i*j+2] = new DefaultPort();
    			cellschoix1[i].add(portchoix1[i*j+2]);
    			}
    			}catch(Exception e){e.printStackTrace();}
     
    		graph.getGraphLayoutCache().insert(cellschoix1);
    		//Ceéation des feuilles
     
    		height=20;
    			for(k=0;k<actions;k++)
    			{
    				for(j=0;j<outcome;j++)
    				{try{
    					height=height+40;
    					cellsfeuille1[j*k] = new DefaultGraphCell(new String(String.valueOf(payoff[k][j])));
    					GraphConstants.setBounds(cellsfeuille1[j*k].getAttributes(), new Rectangle2D.Double(180,height,40,20));
    					GraphConstants.setGradientColor(cellsfeuille1[j*k].getAttributes(),Color.green);
    					GraphConstants.setOpaque(cellsfeuille1[j*k].getAttributes(), true);
    						portfeuille1[k*j] = new DefaultPort();
    						cellsfeuille1[j*k].add(portfeuille1[j*k]);
     
    				}catch(Exception e){e.printStackTrace();}}}
     
    		graph.getGraphLayoutCache().insert(cellsfeuille1);
     
     
    		//Construction des liens nécessaires
    			DefaultGraphCell[] cellsliens1 = new DefaultGraphCell[2];
    			DefaultEdge[] edge = new DefaultEdge[1];
    			edge[0].setSource(cellschoix1[0].getChildAt(actions));
    			edge[0].setTarget(cellschoix1[1].getChildAt(0));
    			cellsliens1[0] = edge[0];
    			int arrow = GraphConstants.ARROW_CLASSIC;
    			GraphConstants.setLineEnd(edge[0].getAttributes(), arrow);
    			GraphConstants.setEndFill(edge[0].getAttributes(), true);
    			graph.getGraphLayoutCache().insert(cellsliens1);
    		}
    		return graph;
    	}
    les noeuds sont affichées mais
    Mon problème est lors de linserion du lien
    cet exception survenue:
    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
     
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at MyPackage.ArbreResultat.getGraph(ArbreResultat.java:219)
    	at MyPackage.InterfaceProjet$2.actionPerformed(InterfaceProjet.java:212)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    ceci correspond a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    edge[0].setSource(cellschoix1[0].getChildAt(actions));
    y-a-t-il quelqun qui peut m'aider
    lundi ma soutenance et il me reste une partie dans le programme
    svp c urgenttttt

  13. #13
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Tout est dit dans l'erreur

    cellschoix1[0].getChildAt(actions) te renvoye un NULL semblerait-il, il faut que tu verifie que tu as bien rempli ton tableau et les fils.

    Limite mets tout ton bout de code pour voir avec le debuggeur si tu trouves pas.

  14. #14
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    jai compris la faute mais jai pas su comment la résoudre car jai pas bien compris quel indice je dois entrer

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

Discussions similaires

  1. Créer des graphes avec java.
    Par ox@na dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 16/03/2012, 17h05
  2. dessiner un arbre avec des JLabels
    Par cannelline dans le forum AWT/Swing
    Réponses: 0
    Dernier message: 23/02/2011, 20h49
  3. Dessiner des points avec PyQt
    Par Naoli dans le forum PyQt
    Réponses: 1
    Dernier message: 15/01/2008, 18h38
  4. Dessiner à l'écran avec Java hors d'une application
    Par BlackHawk10 dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 17/12/2007, 21h02
  5. Créer des objets avec Java Monkey Engine
    Par ToTo13 dans le forum 3D
    Réponses: 3
    Dernier message: 31/07/2007, 15h06

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