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

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Points : 73
    Points
    73
    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 éclairé 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
    Points : 803
    Points
    803
    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...
    Sans danger si utilisé conformément au mode d'emploi.

    (anciennement BenWillard, enfin moins anciennement que ... enfin bon c'est une longue histoire... Un genre de voyage dans le temps...)

  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 : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    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)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Points : 73
    Points
    73
    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);
    	}
     
    }

  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 : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ce serait plutôt la méthode paintComponent de Panel_taches dont j'aurais besoin.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Points : 73
    Points
    73
    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();
    	}

  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 : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    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.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Points : 73
    Points
    73
    Par défaut
    Alors j 'ai anticipé sur ton post Sinok, j'ai renommé ma méthode, mais le problème reste le même...

    Mais j'ai du mal à comprendre en quoi la surcharge de ces méthodes est importante vu que je ne les appelles jamais

    Je me demande si mes labels ne seraient pas cachés par les rectangles bleus.

  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 : 43
    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 méthode paintXXX sont utilisés en interne par Swing pour dessiner l'interface sur la surface mise à disposition par le système.
    Elles sont le mécanisme de base du rendu des composants Swing.

    J'ai fait le test de transformer ton paint en paintComponent et ça marche sans le moindre problème.


    Par contre, si tu cherches à placer ton label
    exemple:

    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
    package fr.sca.tests.Drawing;
     
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
    import java.awt.Point;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.List;
     
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    public class Panel_taches extends JPanel {
     
        private List<IDrawable> drawables = new LinkedList<IDrawable>();
     
        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);
            label1.setVerticalAlignment(JLabel.TOP);
            label1.setHorizontalAlignment(JLabel.LEFT);
     
            GridBagConstraints c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 0;
            c.fill = GridBagConstraints.BOTH;
            c.weightx =1.0;
            c.weighty =1.0;
            c.insets = new Insets(30, 20, 0, 0);
            c.anchor = GridBagConstraints.PAGE_START;
     
            this.add(label1, c);
     
        }
     
     
        @Override
        protected void paintComponent(Graphics g) {
            for (Iterator<IDrawable> iter = drawables.iterator(); iter.hasNext();) {
                IDrawable d = iter.next();
                d.draw(g);    
            }
        }
     
        public void addDrawable(IDrawable d) {
            drawables.add(d);
            repaint();
        }
     
        public void removeDrawable(IDrawable d) {
            drawables.remove(d);
            repaint();
        }
     
        public static void main(String[] args) {
            JFrame f = new JFrame();
            f.add(new Panel_taches());
            f.setSize(800,600);
            f.setLocationRelativeTo(null);
            f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            f.setVisible(true);
        }
    }

    Par contre, si tu veux t'assurer que le texte arrive bien dans tes rectangles, c'est lors du dessin du rectangle que tu devrais le faire au moyen d'un drawString et non en plaçant un JLabel à posteriori.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Points : 73
    Points
    73
    Par défaut
    Ok, merci de ton aide. Je regarde du côté de drawString lundi car je vais avoir un week end chargé.

    En tout cas pour le moment ton code fonctionne (mais je vois que tu as rajouté des lignes par rapport à moi). Qu'est ce qui a fait que maintenant les labels aparaissent?

    Sinon j'ai une erreur:

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    rect.setText("tache 1");

    Il me dit de créer la méthode setText(String) dans l'interface IDrawable? Je devrais la surcharger? Je ne comprends pas.

  11. #11
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    IDrawable ne declare pas cette methode.
    Eric

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Points : 73
    Points
    73
    Par défaut
    Bonjour à tous.

    Bon donc je reviens vers vous pour vous dire qu'en effet maintenant mon texte s'inscrit bien dans mes rectangles:



    Maintenant je veux rajouter un bouton. Je fais la même technique, avec un GridBagConstraint de cette façon:

    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
    public class Button_action extends JPanel {
     
    	private JButton play;
    	private JButton pause;
    	private JButton stop;
     
    	public Button_action() {
    		super();
     
    		this.setSize(new Dimension(1100, 50));
     
    		this.setLayout(new GridBagLayout());
     
    		play = new JButton("temp");
    		play.setPreferredSize(new Dimension(100, 50));
    		play.setVerticalAlignment(JButton.CENTER);
    		play.setHorizontalAlignment(JButton.CENTER);
     
            GridBagConstraints c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 0;
            c.fill = GridBagConstraints.BOTH;
            c.weightx =0.0;
            c.weighty =0.0;
            c.insets = new Insets(140, 60, 0, 0);
            c.anchor = GridBagConstraints.CENTER;
     
    		this.add(play);
    	}
     
     
     
    }

    Moi je veux un bouton de la taille signifiée (100px par 50px) et voilà ce que j'obtiens:



    le bouton a la bonne taille et est bien positionné, mais ma fenêtre entière est devenue blanche. Pourquoi? je ne spécifie nulle part une couleur de fond à mon panel Button_action (nom peut évocateur au passage :/)

  13. #13
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    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 simplement car un JPanel a une couleur de fond par défaut.

    Pour faire en sorte que le fond d'un JPanel ne soit pas dessiné, il faut faire l'appel suivant:

    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  14. #14
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Points : 73
    Points
    73
    Par défaut
    ce n'est pas concluant chez moi :/
    J'ai toujours cet horrible fond blanc qui me cache tout.

    Il n'y a pas moyen de redimensionner vraiment le JPanel. Parce que même avec ça

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setPreferredSize(new Dimension(100, 100));

    ...le JPanel prend tout l'espace on dirait.

    EDIT: j'ai décidé de changer un peu mon code, il est déjà plus lisible et les setOpaque(false) fonctionnent:

    Mes tâches côte à côte:

    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
    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
    public class Panel_taches extends JPanel {
     
     
    	public Panel_taches() {
    		super();
    		this.setPreferredSize(new Dimension(1100, 60));
    		this.setOpaque(false);
     
    		this.setLayout(new GridBagLayout());
     
    		JLabel label1 = new JLabel("Tâche 1 (25 min)");
            label1.setBackground(Color.WHITE);
            label1.setVerticalAlignment(JLabel.TOP);
            label1.setHorizontalAlignment(JLabel.LEFT);
     
            GridBagConstraints c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 0;
            c.fill = GridBagConstraints.BOTH;
            c.weightx =1.0;
            c.weighty =1.0;
            c.insets = new Insets(30, 60, 0, 0);
            c.anchor = GridBagConstraints.PAGE_START;
     
    		this.add(label1, c);
     
    		JLabel label2 = new JLabel("Tâche 2 (5 min)");
            label2.setBackground(Color.WHITE);
            label2.setVerticalAlignment(JLabel.TOP);
            label2.setHorizontalAlignment(JLabel.LEFT);
     
            c.insets = new Insets(30, 581, 0, 0);
     
    		this.add(label2, c);
     
    		JLabel label3 = new JLabel("Tâche 3 (10 min)");
    		label3.setBackground(Color.WHITE);
    		label3.setVerticalAlignment(JLabel.TOP);
    		label3.setHorizontalAlignment(JLabel.LEFT);
     
            c.insets = new Insets(30, 686, 0, 0);
     
    		this.add(label3, c);
     
    		JLabel label4 = new JLabel("Tâche 4 (8 min)");
    		label4.setBackground(Color.WHITE);
    		label4.setVerticalAlignment(JLabel.TOP);
    		label4.setHorizontalAlignment(JLabel.LEFT);
     
            c.insets = new Insets(30, 895, 0, 0);
     
    		this.add(label4, c);
    	}
     
    	public void paintComponent(Graphics g) {
    		g.setColor(Color.WHITE);
    		g.fillRect(60, 10, 520, 50);
    		g.fillRect(581, 10, 104, 50);
    		g.fillRect(686, 10, 208, 50);
    		g.fillRect(895, 10, 166, 50);
    	}
     
     
    }

    j'ai conservé mes labels, par contre je dessine et positionne mes rectangles directement dans paintComponent

    Ma classe panel_avancement (une sorte de barre de chargement qui augmente en fonction du temps et qui une fois arrivée à sa longueur max se teind en rouge)

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    public class Panel_avancement extends JPanel {
     
    	private final int LARGEUR = 50;
    	private final int LONGUEUR_MAX = 1000;
    	private int longueur;
    	private Timer timer;
     
    	public Panel_avancement() {
    		super();
    		this.setPreferredSize(new Dimension(1100, 50));
    		this.setOpaque(false);
     
    		longueur = 0;
     
    	    timer = createTimer ();
    	    timer.start ();
    	}
     
    	// Méthode renvoyant un timer prêt à démarrer
    	public Timer createTimer () {
    		// Création d'une instance de listener 
    		// associée au timer
    		int temp = 0;
    		ActionListener action = new ActionListener() {
    			// Méthode appelée à chaque tic du timer
    			public void actionPerformed (ActionEvent event) {
     
    				longueur++;
    				repaint();
     
    			}
    		};
     
    		return new Timer(2880, action);
    	} 
     
    	public void paintComponent(Graphics g) {
    		g.setColor(Color.GREEN);
    		if (longueur == LONGUEUR_MAX) {
     
    			g.setColor(Color.RED);
    			timer.stop();
    		}
    		g.fillRect(0, 0, longueur, LARGEUR);
    	}
     
    }


    Et le panneaux contenant mes boutons:

    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
    public class Button_action extends JPanel {
     
    	private JButton play;
    	private JButton pause;
    	private JButton stop;
     
    	public Button_action() {
    		super();
     
    		this.setPreferredSize(new Dimension(1000, 50));
    		this.setOpaque(false);
     
    		this.setLayout(new FlowLayout());
     
    		play = new JButton(new ImageIcon("src/pic/start.png"));
    		play.setPreferredSize(new Dimension(50, 50));
    		play.setVerticalAlignment(JButton.CENTER);
    		play.setHorizontalAlignment(JButton.CENTER);
    		//play.addActionListener(new Panel_avancement().createTimer());
     
     
     
    		this.add(play);
    		this.add(stop);
    	}
    }

    J'ai l'erreur suivante pour ce JPanel: Source not found.

    EDIT2: bon en fait c'est parce que j'avais pas initialisé mon bouton stop xD


    Ah oui et mon main() quand même que je vous ai toujours pas mis:

    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
    37
    38
    39
    40
    41
    42
    43
    public class Fenetre_principale {
     
    	public static void main(String[] args) {
     
    		JFrame fenetre = new JFrame("Avancement des tâches");
    		fenetre.setSize(1100, 500);
    		fenetre.setLocation(50, 100);
    		fenetre.setBackground(Color.GRAY);
    		fenetre.setResizable(false);
     
    		//fenetre.setLayout(new FlowLayout());
     
    		JPanel temp = new JPanel();
    		temp.setLayout(new GridBagLayout());
    		temp.setPreferredSize(new Dimension(1100, 500));
    		temp.setOpaque(false);
     
    		GridBagConstraints c = new GridBagConstraints();
    		c.gridx = 0;
                    c.gridy = 0;
                    c.fill = GridBagConstraints.BOTH;
                    c.weightx =1.0;
                    c.weighty =1.0;
                    c.insets = new Insets(0, 0, 0, 0);
                    c.anchor = GridBagConstraints.PAGE_START;
     
    		temp.add(new Panel_taches(), c);
     
                    c.insets = new Insets(70, 60, 0, 0);
    		temp.add(new Panel_avancement(), c);		
     
                    c.insets = new Insets(0, 60, 0, 0);
    		temp.add(new Button_action(), c);
     
     
    		fenetre.setContentPane(temp);
     
    		fenetre.setVisible(true);
    		fenetre.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
     
    	}
     
    }

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