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 :

[Tracer une frise]


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 34
    Par défaut [Tracer une frise]
    Bonjour,

    Je suis en train de terminer mon stage, et j'ai eu à réaliser entre autre une sorte de frise/graphe affichant des données sous forme d'axes, traits, Labels, images, à l'aide de Python GTK+ (desktop app).

    Cependant à la fin de ce stage, on s'est vite rendu compte que dès qu'il y'avait trop de données à afficher dans la zone de dessin (5000+ lignes XML minimum, contenant 8+ balises chacunes), la navigation et le chargement étaient trop lents, impossible donc d'avoir une navigation fluide lors du parcours ce celui-ci (via ScrollBar, drag&Move dessus ..)

    Je compte proposer de changer de langage pour passer au JAVA (pour de multiples raisons), et je cherche actuellement un module/composant en Java SWING/AWT qui pourrait me donner un rendu similaire: http://imageshack.us/photo/my-images...shot017hn.jpg/
    J'ai vu en parcourant le forum qu'il y avait des modules tels que java2D/graphics2D.

    Le module doit me permettre de pouvoir naviguer sur le graphe de façon la plus fluide possible (en terme de performances), en ayant la possibilité de pouvoir cliquer/survoler sur une icone (voir lien) afin d'afficher des informations et de pouvoir raffraichir facilement la frise afin d'y appliquer des filtres.

    Merci d'avance pour votre aide, il s'avère que c'est une partie majeure de l'application et plutôt critique (vu le nombre de données).

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour ce genre de choses il va falloir y aller à la main avec Java2D je ne pense pas qu'il existe un api qui propose ce genre de choses, car c'est über spécifique.

    Il faudra bien penser à utiliser le clip des graphics afin de ne dessiner que ce qui est nécessaire (utiliser la méthode getClip() des graphics passés en paramètre de la méthode paintComponent, qui sera utilisée pour redéfinir l'apparence du composant, donc pour dessiner ton graphe. En effet, cela te permettra de n'avoir à réaliser uniquement les opérations de dessin de la portion visible du composant, et d'ignorer tout les objets qui seraient hors champ... Donc d'améliorer la perf du composant in fine.

    Mais bon, ça a l'air jouable, je ne vois pas de problème majeur. Bien sur le XML devra être parsé au préalable, et son contenu stockée dans des données accessibles de façon rapide. Là je bosse donc je n'ai pas trop le temps de faire un exemple correct, mais c'est faisable....

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 34
    Par défaut
    Oui je me doutais bien qu'il me faudrait tout faire à la main pour ce genre de "graphe" spécifique.

    Là je bosse donc je n'ai pas trop le temps de faire un exemple correct, mais c'est faisable ..
    Oui pas de soucis, merci à toi pour cette réponse, bien argumentée en plus avec quelques détails techniques, cela me permet de pouvoir proposer une solution viable d'adaptation qui devrait pouvoir se faire facilement selon tes dires.

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Citation Envoyé par Ohmygosh Voir le message
    viable d'adaptation qui devrait pouvoir se faire facilement selon tes dires.
    Je n'ai pas été jusqu'à dire facile...

    Y'a du taf, beaucoup, du travail sur les design patterns & cie (fly weight & cie)...

    Va falloir préparer ton coup, et il y a du taf...
    Arriver à une première version fonctionnelle, même si pas de plus performantes, puis au fur et à mesure, en s'appuyant sur un profiler, trouver les points noirs...

    Non, ce ne sera pas "facile"...

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 34
    Par défaut
    Oui je me suis peut-être un peu emballé mais comme j'ai déjà réalisé l'algo pour la version sous Python, disons que je ne pars pas de zéro, même si il y'aura une gros travail de "refonte" à effectuer

Discussions similaires

  1. Tracer une adresse ip ?
    Par maadadi dans le forum Développement
    Réponses: 4
    Dernier message: 27/01/2011, 22h41
  2. [VB.NET] Tracer une ligne (OnPaint)
    Par Emcy dans le forum Windows Forms
    Réponses: 6
    Dernier message: 24/03/2005, 13h09
  3. [FLASH MX2004] Faire une frise
    Par ericmart dans le forum Flash
    Réponses: 12
    Dernier message: 17/02/2005, 16h24
  4. [FP]Tracer Une ligne avec Dev-pascal
    Par yffick dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 17/12/2003, 16h33
  5. Tracer une ligne droite sans les interruptions
    Par Stef784ever dans le forum x86 16-bits
    Réponses: 4
    Dernier message: 25/11/2002, 01h22

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