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 :

Placer des rectangle sur un JFrame, sans superposition?


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Points : 49
    Points
    49
    Par défaut Placer des rectangle sur un JFrame, sans superposition?
    Je dois construire automatiquement une serie de rectangles et les dessiner dans un JFrame.

    Hors, je ne veut pas que mes rectangle se chevauchent.

    Je dois donc faire varier mes coordonnées X et Y de tel sorte que ça ne se chevauche pas.

    A noter que chaque rectangle est relié entre eux par un trait, donc il faut que le trait soi bien visible aussi.


    En d'autres termes, j'aimerai trouver une façon de faire pour placer mes rectangles de façon convenable sur mon JFrame, bien espacé...

    y a t-il une solution?

    Merci

  2. #2
    Membre actif

    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 229
    Points
    229
    Par défaut
    en guise de rectangles, tu peux utiliser des panneaux avec des LineBorder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		private JPanel rectangle = new JPanel();
    		rectangle.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    et tu les ajoute à ton jframe, tu definis un boxlayout ou un gridlayout pour cette jframe selon ce que tu veux exactement faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    frame.setLayout(monLayout)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Tout dépende de ce que tu veux exactement :
    remplissage optimal sur une surface donnée dans ce cas là il va falloir fouiller dans des algorithmes d'ordonnancement -- miam miam -- puis les dessiner sur un panel
    Juste poser ces rectangles dans un layout dans ce cas là pas de soucis fais ce que te dis le monsieur au dessus, ça suffira amplement

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Et bien j'utilise JGraph, car il s'occupe lui meme de créer les rectangle et de dessiner les lien entre eux.

    Cependant il dispose pas de fonction de placement automatique, ce qui fait que je dois faire varier X et Y pour le placer dans mon Jframe.

    Hors j'aimerai faire une fonction qui me place chaque rectangle a une bonne place.

    Une seule chose que je connais a l'avance c'est le nombre de rectangle a générer.

    Donc connaissant le nombre de rectangle je veux pouvoir russir a les dessiner convenablement dans mon JFrmae.

    Pour les Layout je vois pas trop comment faire....

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Comment doivent ils être disposés?? En ligne, colonne, n'importe où, tu as des crières pour ça ou pas?

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Aucun critère en fait, tout ce que je souhaite c'est avoir mes rectangle bien positionné de façon lisible

    Je cherche toujours ....

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    les rectangles que tu crées sont de quel type?

    En même temps vu que je n'ai jamais utilisé JGraph je doute de pouvoir te donner la solution

    Basiquement il faudrait que tu définisse des règles que tu devras suivre pour l'ajout des rectangles (rayon autour du rectangle dans lequel tu ne pourras ajouter d'autre rectangle, direction dans laquelle tu veux aller pour tel type de rectangle ...) puis placer ton premier rectangle à la position voulue et placer les autres en suivant les règles que tu as définies........

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Mes rectangle sont des rectangle2D.

    En fait, le placement n'a rien a voir avec JGraph, etant donné que l'emplacement des rectangle c'est moi qui les donne par X et Y.

    Rectangle2D rectangle2D = new Rectangle2D.Double(x, y, w, h);
    GraphConstants.setBounds(cell.getAttributes(), rectangle2D);

    Si tu regarde bien, je spécifie l'emplacement de mes rectangle lors de la création dudit rectangle.

    Donc ça n'a rien à voir avec JGraph.

    Mais faut juste que je trouve un algo qui me fasse ça...

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    pour ça il va falloir fouiller sur le net, car là te trouver un algo tout fait je n'en sais trop rien.
    Recherche du coté des thèses et compagnie car là je sèche

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Et bien moi j'ai mon idée, passer par une structure d'arbre avec mes rectangles.

    Je défini un sommet et je pace le reste en fonction de ce sommet, je fait varier X et Y de sorte que j'ai assez de distance pour ne pas faire de croisement.


    Voir même définir 2 ou 3 sommet différents decouper ça en 2 ou trois arbres que je relie par des liens si necessaire

  11. #11
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Voila,

    Je confirme, ma methode marche impec, pas de croisement.

    Biensur, l'algo que j'ai appliqué n'est pas généraliste, il ne convient que pour mon programme, et les fichiers qu'il lit, et donc des données qu'il obtient.

    Mais sa marche pour n'importe quel cas de figure que je peux rencontrer avec mon programme.

    Impeccable

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    c'est l'essentiel....

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

Discussions similaires

  1. Placer des images sur une image avec un JFrame
    Par blackhock dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 28/06/2009, 18h31
  2. Réponses: 10
    Dernier message: 15/04/2008, 15h26
  3. Réponses: 3
    Dernier message: 07/02/2007, 17h01
  4. Réponses: 8
    Dernier message: 07/08/2006, 17h40
  5. [Image]Dessiner des rectangles sur une image
    Par navona dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 09/03/2006, 22h51

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