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

Graphisme Java Discussion :

placement des Label en java


Sujet :

Graphisme Java

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut placement des Label en java
    salut ,

    je suis en train de faire un call graph avec des Label et je ne sais pas comment faire pour placer mes labels en fonction des donnees...
    je mexplique...

    jai des donnees dans une collection et je lai recupere pour faire un call graph(un graph representant les appels de fonctions successifs)...

    Cest a dire que les donnees que doit contenir le call graph sont dans une collection, et voici (=voir plus bas) a quoi resemble la collection (la collection contient des lignes d'un fichier log; d'un LEVEL a un autre LEVEL forment une ligne):
    Et j'ai acces a chaque parti de la ligne(ex:le level, le time, le thread.....)
    MON ALGO:
    La racine de labre sera le ACCOUNTING et a chaque fois que je rencontre un START dans une ligne je dois creer un noeud et des que je rencontre un STOP le dernier noeud (=celui auquel jen etais avant de rencontrer le STOP) devient une feuille. Et si je rencontre un autre STOP je remonte dans larbre et je ferme lavant dernier noeud et ainsi de suite...

    mais comment puis je faire pour dire que je place tous les fils de la racine a tel endroit, tous les fils du 1er fils de la racine a tel endroit, tous les fils du 2eme fils de la racine a tel endroit.....

    CEST A DIRE AUTOMATISE LE PLACEMENT DES LABELS

    [Level:ACCOUNTING - Time:1145460786832 - Thread:http-8082-Processor25 - Classe:uk.ac.wmin.cpc.gemlca.frontend.helpers.FrontendSetup DecorateWithSubject - Logger:uk.ac.wmin.cpc.gemlca.frontend.helpers.FrontendSetup - Message:START: /C=UK/O=eScience/OU=Westminster/L=ComputerScience/CN=thierry delaitre - NDC:ndc - Line:62 - File:FrontendSetup.java]

    [LevelEBUG - Time:1145460786833 - Thread:http-8082-Processor25 - Classe:uk.ac.wmin.cpc.gemlca.frontend.GLCProcess.impl.GLCProcess getLCParameters - Logger:uk.ac.wmin.cpc.gemlca.frontend.GLCProcess.impl.GLCProcess - Message:start - NDCC=UK/O=eScience/OU=Westminster/L=ComputerScience/CN=thierry delaitre - Line:155 - File:GLCProcess.java]

    [LevelEBUG - Time:1145460786834 - Thread:http-8082-Processor25 - Classe:uk.ac.wmin.cpc.gemlca.frontend.GLCProcess.impl.GLCProcess getLCProcess - Logger:uk.ac.wmin.cpc.gemlca.frontend.GLCProcess.impl.GLCProcess - Message:start/stop - NDCC=UK/O=eScience/OU=Westminster/L=ComputerScience/CN=thierry delaitre - Line:300 - File:GLCProcess.java]

    [LevelEBUG - Time:1145460786834 - Thread:http-8082-Processor25 - Classe:uk.ac.wmin.cpc.gemlca.frontend.GLCProcess.impl.GLCProcess getResource - Logger:uk.ac.wmin.cpc.gemlca.frontend.GLCProcess.impl.GLCProcess - Message:start - NDCC=UK/O=eScience/OU=Westminster/L=ComputerScience/CN=thierry delaitre - Line:71 - File:GLCProcess.java]
    ......
    [Level:ACCOUNTING - Time:1145460786877 - Thread:http-8082-Processor25 - Classe:uk.ac.wmin.cpc.gemlca.frontend.helpers.FrontendMessages AbandonSubjectDecoration - Logger:uk.ac.wmin.cpc.gemlca.frontend.helpers.FrontendMessages - Message:STOP: /C=UK/O=eScience/OU=Westminster/L=ComputerScience/CN=thierry delaitre - NDC:ndc - Line:54 - File:FrontendMessages.java]

  2. #2
    Membre éclairé Avatar de bubu56
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Par défaut
    pourquoi tu utilises pars directement un JTree ?

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut
    en fair je dois faire un arbre et un call graph...
    jai deja fait a peu pres un arbre avec jtree et maintenant je cherche a faire un call graph

  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
    Dans ton cas je ne suis pas sur que l'utilisation de labels soit véritablement ce qu'il est nécessaire de faire, à mon humble avis il faudrait plutôt dessiner à même un JPanel tes noeuds et les relations entre eux avec les primitives graphiques de la classe Graphics (ou Graphics2D) de ton JPanel

    Ensuite pour le placement réfère toi à une réponse qui t'a été donnée dans un de tes précédents sujets où il t'explique la manière de procéder
    ++

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut call graph
    salut,




    en fait pour le moment jessayais juste de voir si cela marcherait avec des JLabel.....si oui il ny a pas de raison que ca ne marche pas avec les Graphics.........
    mais bon pourquoi perdre du temps avec le JLabel alors que jai les Graphics2D.......

    "il faudrait plutôt dessiner à même un JPanel tes noeuds et les relations entre eux avec les primitives graphique" :je ne comprends pas trop ce que tu veux dire.....

  6. #6
    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
    Ba avec les méthodes drawXXX de tes graphics2D tu es capable de dessiner ce que tu veux ou tu veux sur un JPanel ton tu as les graphics (et de ce fait les Graphics2D)

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut call graph
    BEN JUSTEMENT JE SUIS SUR UN TUTO sur graphics2d que un des membres a poste et je suis en train de le lire.....mais apperemment les exemples qu'ils donnent concernent uniquement les JApplets.....je cherchais plutot des exemples dapplications java......#

    dans leurs exemples ils heritent de la classe JApplet......

    taurais des exemples dutilisation des Graphics2D mais en application java???stp.....des liens de tuto....

    je te remercie

  8. #8
    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
    C'est relativement simple , pour dessiner ceci il te suffit de redéfinir la méthode paintComponent(Graphics g) de ton JPanel qui est appelée à chaque fois que ton panel est redessiné.

    Pour récupérer les Graphics2D de ton panel il suffit de caster les Graphics passé en paramètre de cette méthode et de les caster en Graphics2D

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class MonPanel extends JPanel {
    .....
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        puis tu utilise les Graphics2D pour dessiner à ta convenance
    }

  9. #9
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut call graph
    taurais une idee des bibliothques quil faut importer pour les graphics

    java.awt.Graphics2D ?????

  10. #10
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut call graph
    excuse jai poste trop vite cetai bien la bonne bibiliotheque

  11. #11
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut call graph
    comment fait on pour recuperer le Graphics g que tu donnes dans ton exemple en parametre a la fonction paintComponent?

    ce que je ne comprend pas cest que: est ce que la fonction paintComponent permet seulement de redessiner par dessus un graphique deja existant?? car on passe un graphic g en parametre....

    pour dessiner juste un graphics???g2.drawRect....?

    donc jai pas besoin de la fonction paintComponent.....non...
    je ne sais pas

  12. #12
    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
    Euh ou pas, elle est nécessaire pour redessiner ton panel (par exemple si une autre fenêtre passe par dessus)
    Donc en fait ce que tu dois fais dans le caas présent c'est coder dans cette méthode la fçon de redessiner tes éléments en fonction de la collection qui contient tes données, Par contre vu la taille des données ça peut être violent (je suppose que ça correspond à ce que tu as dans le post sur le JTree)

  13. #13
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut call graph
    en effet cest la meme collection que celle utlisee avec jtree

    oui cest violent car jai affciche mon tree cetai assez enorme car ca prenait 15 secondes pour sexecuter...........et labre etai pratiquement infini, je suis

    public
    class MonPanel extends JPanel {

    public MonPanel(){
    super(new GridLayout(1,0));
    Graphics g =
    null;
    paintComponent(g);

    }
    protectedvoid paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D) g;
    g2.drawRect(5, 5, 5, 5);

    }

    publicstaticvoid main(String[] args) {

    MonPanel mp =
    new MonPanel();
    mp.show();
    }

    }

    Exception in thread "main"
    java.lang.NullPointerException

    at javax.swing.JComponent.paintComponent(
    JComponent.java:745)
    at exemples.MonPanel.paintComponent(
    MonPanel.java:26)
    at exemples.MonPanel.<init>(
    MonPanel.java:22)
    at exemples.MonPanel.main(
    MonPanel.java:34)


  14. #14
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut je suis chiant: placer des rectangles
    salut, toutl;e monde

    je sais que je suis chiant de poser autant de questions ..........mais cest parce que je suis dans lurgence..........

    mon juste au dessus donne ce que jai mis (en tout avec laide de pas mal de personnees) pour placer un rectangle.............

    mais je pense qu'il y a une etape que je ne dois pas saisir car la fonction paintComponent a en parametre un Grphics2D et comment je fais pour appeler cette fonction avec un objet graphics en parametre???

    Si cette fonction permet de creer mon rectangle, alors pourquoi creer un 2eme Grapgics que lon donne en parametre a la fonction paintComponent() ???

    Sil vous plait, quelquun peut maider comprendre ce truc que je suis pas foutu de comprendre.merci

  15. #15
    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
    paintComponent prend en paramètre un Graphics et non un Graphics2D (cette méthode.

    Sinon es tu au courant que pour afficher un JPanel à l'écran il faut tout de même le mettre dans une JFrame ou un JDialog ou une JWindow.
    Et le show est prohibé, il vaut mieux utiliser un setVisible(true) pour rendre visible ton appli

  16. #16
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut
    public
    class MonPanel extends JPanel {

    publicvoid paintComponent(Graphics g2) {
    super.paintComponent(g2);
    Graphics2D g = (Graphics2D) g2;

    g.setColor(Color.
    blue);

    int thickness = 4;

    for (int i = 0; i <= thickness; i++)
    g.draw3DRect(20 - i, 10 - i, 80 + 2 * i, 30 + 2 * i,
    true);

    }

    publicstaticvoid main(String[] args) {
    JFrame frame =
    new JFrame();
    frame.setTitle(
    "Mon rectangle");
    frame.setSize(300, 300);
    frame.addWindowListener(
    new WindowAdapter() {
    publicvoid windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    Container contentPane = frame.getContentPane();
    contentPane.add(
    new MonPanel());

    frame.setVisible(
    true);
    }

    }

  17. #17
    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
    Ba c'est le principe......
    Utilise la balise code également pour encadrer tes sources ce sera plus lisible (le bouton # au dessus de la zone texte)

  18. #18
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut
    public
    class MonPanel extends JPanel {

    publicvoid paintComponent(Graphics g2) {
    super.paintComponent(g2);
    Graphics2D g = (Graphics2D) g2;

    g.setColor(Color.
    blue);

    int thickness = 4;

    for (int i = 0; i <= thickness; i++)
    g.draw3DRect(20 - i, 10 - i, 80 + 2 * i, 30 + 2 * i,
    true);

    }

    publicstaticvoid main(String[] args) {
    JFrame frame =
    new JFrame();
    frame.setTitle(
    "Mon rectangle");
    frame.setSize(300, 300);
    frame.addWindowListener(
    new WindowAdapter() {
    publicvoid windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    Container contentPane = frame.getContentPane();
    contentPane.add(
    new MonPanel());

    frame.setVisible(
    true);
    }

    }

  19. #19
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut zone de text dans le rectangle
    encore une fois desole pour le double post.... javais pas vu que le topic comportait 2 pages donc jai cru que le code poste netait pas passe...


    donc maintenant que jai mon rectangle....est ce qu'il y a des proprietes ou fonctions qui permettent de rajouter du texte au centre du cadre....et existe t il une fonction setToolTip comme pour les JPanel qui permettent daffiocher du texte quand on passe la souris sur le rectangle......comme la balise alt en html...

    je te remercie de mavoir tout aul ong de la journeee......

  20. #20
    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 le texte à l'intérieur du rectagle tu as la méthode drawString

    Mais dans ton cas je te conseille plutôt de t'orienter vers une implémentation de l'interface Shape qui te permettrait de faiore deux opération en une cad l'affichage du texte et le dessin du rectangle autour en fonction de la taille du texte.

    Attention tu ne peux faire de saut de ligne avec un drawString (un \n apparaîtra comme un \n).

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/12/2013, 13h18
  2. Plugin validate, placement des labels error
    Par gui80 dans le forum jQuery
    Réponses: 2
    Dernier message: 17/02/2012, 21h53
  3. Présentation des nouveautés de Java 5.0 Tiger (J2SE 1.5)
    Par christopheJ dans le forum Langage
    Réponses: 43
    Dernier message: 30/09/2007, 17h38
  4. Placement des balises avec DTD
    Par Keul125 dans le forum Valider
    Réponses: 4
    Dernier message: 28/05/2003, 12h08
  5. [VB6] Des labels qui réagissent à la souris
    Par murielle dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 24/10/2002, 14h19

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