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 Texte JLabel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par défaut Affichage Texte JLabel
    Bonjour, je développe actuellement une petite application en Java devant permettre d'avoir un visuel en temps réel des taches à accomplir pour une mise en oeuvre donnée.

    J'ai décidé de représenter ces taches par des rectangles mis â coté les uns des autres pour avoir une sorte de ligne de temps cumulés...

    Maintenant ce que j'aimerais faire c'est afficher du texte, par exemple "Tache 1" au dessus (voir même dans le rectangle si c'est possible).

    Voilà ma classe Panel_taches:

    Code Java : 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
     
    public class Panel_taches extends JPanel {
     
    	private List drawables = new LinkedList();
     
    	private IDrawable rect, rect2, rect3, rect4;
     
    	public Panel_taches() {
    		super();
    		this.setSize(new Dimension(500, 1000));
     
    		rect = new RectangleDrawable(Color.BLUE,new Point(10,10),new Dimension(50,250));
    		rect2 = new RectangleDrawable(Color.BLUE,new Point(270,10),new Dimension(50,50));
    		rect3 = new RectangleDrawable(Color.BLUE,new Point(330,10),new Dimension(50,100));
    		rect4 = new RectangleDrawable(Color.BLUE,new Point(440,10),new Dimension(50,80));
     
    		this.addDrawable(rect);
    		this.addDrawable(rect2);
    		this.addDrawable(rect3);
    		this.addDrawable(rect4);
     
    		this.setLayout(new GridBagLayout());
     
    		JLabel label1 = new JLabel("Tâche 1 (25 min)");
    		label1.setBackground(Color.WHITE);
     
    		GridBagConstraints c = new GridBagConstraints();
    		c.gridx = 0;
    		c.gridy = 0;
    		c.insets = new Insets(100, 100, 0, 0);
    		c.anchor = GridBagConstraints.LINE_START;
     
    		this.add(label1, c);
     
    	}
    }

    On retrouve bien mes 4 rectangles... mais où est passé mon texte?



    Voilà, j'ai toujours eu du mal à afficher du texte bizarrement avec Java, et j'ai pas sur moi un exemple d'un programme où ca avait déjà marché pour moi.

    Merci.

  2. #2
    Membre émérite Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Par défaut
    Je pense que tu devrais oublier l'approche graphique, et utiliser des labels avec une couleur de fond et une couleur de texte etc... Inutile de s'occuper de tracer un rectangle si ce n'est pas JUSTE un rectangle visuel... Puisqu'un label est un rectangle...

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par défaut
    Citation Envoyé par JoeChip Voir le message
    Je pense que tu devrais oublier l'approche graphique, et utiliser des labels avec une couleur de fond et une couleur de texte etc... Inutile de s'occuper de tracer un rectangle si ce n'est pas JUSTE un rectangle visuel... Puisqu'un label est un rectangle...
    C'est possible que tout comme mes rectangles, les labels ait une taille définie et différente entre eux?

    Tu peux nous montrer la partie où les Drawable sont dessinés (la méthode paintComponent qui a été redéfinie j'imagine)
    Oui (je précise que je me suis aidé d'un code que j'ai trouvé sur le net):

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public interface IDrawable {
     
    	public  void draw(Graphics g);
     
    	public Rectangle getRectangle();
    }

    Code Java : 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
     
    public class RectangleDrawable extends FormDrawable {
     
    	public RectangleDrawable(Color color, Point pos, Dimension dim) {
    		super(color, pos, dim);
     
    	}
     
    	public void draw(Graphics g) {
    		Color c = g.getColor();
    		g.setColor(color);
    		g.fillRect(rect.x,rect.y,rect.height,rect.width);
    		g.setColor(c);
    	}
     
    }

  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
    Ce serait plutôt la méthode paintComponent de Panel_taches dont j'aurais besoin.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par défaut
    Ah excuse moi Sinok, voilà la fin de ma classe:


    Code Java : 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
    	public void paint(Graphics g) {
    		for (Iterator iter = drawables.iterator(); iter.hasNext();) {
    			IDrawable d = (IDrawable) iter.next();
    			d.draw(g);	
    		}
    	}
     
    	public void addDrawable(IDrawable d) {
    		drawables.add(d);
    		repaint();
    	}
     
    	public void removeDrawable(IDrawable d) {
    		drawables.remove(d);
    		repaint();
    	}
     
    	public void clear() {
    		drawables.clear();
    		repaint();
    	}

  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
    Ton problème vient du fait que tu redéfinis paint au lieu de paintComponent.

    En effet la méthode paint fait plus que dessiner le composant en lui même (paintComponent) , elle exécute les méthodes déclenchant le dessin des bordures (paintBorders) et des composants enfants que tu as ajouté à ton JPanel (paintChildren).

    Or, vu que tu la redéfinis, ces actions ne sont plus déclenchées.

    De fait, remplaces
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected void paintComponent
    , ce derait aller mieux.

  7. #7
    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
    Tu peux nous montrer la partie où les Drawable sont dessinés (la méthode paintComponent qui a été redéfinie j'imagine)

Discussions similaires

  1. Norme d'insertion/affichage texte dans une DB ?
    Par kiwikiller dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 21/12/2005, 11h53
  2. [FLASH MX2004] Pb d'affichage texte dynamique
    Par mohican13 dans le forum Flash
    Réponses: 6
    Dernier message: 01/02/2005, 09h55
  3. [FLASH MX 2004] Affichage texte dynamique
    Par Sun3clipse dans le forum Flash
    Réponses: 8
    Dernier message: 25/06/2004, 16h24
  4. affichage texte style splash screen
    Par scorbo dans le forum MFC
    Réponses: 4
    Dernier message: 13/06/2004, 12h03

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