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 :

setBackgroundColor ne fonctionne pas sur un JPanel


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut setBackgroundColor ne fonctionne pas sur un JPanel
    Bonjour,

    Je ne comprends pas pourquoi cette méthode ne fonctionne pas.
    Pourtant, lorsque j'enlève la création du cercle (en commentant les lignes 18 à 26 de la classe Panneau), j'ai bien mon background en jaune ....

    Voici le code en deux classes :
    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
     
    package essais;
     
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Graphics;
     
    import javax.swing.JPanel;
     
    public class Panneau extends JPanel{
    	static final long serialVersionUID = 1;
     
        public Panneau() {
    		setBackground(Color.YELLOW);
    		setPreferredSize(new Dimension(700, 350));
        } 
     
       void dessiner(Graphics g) {
        	g.setColor(Color.RED);
    		g.fillOval(60, 35, 80, 80);
        }
     
        public void paintComponent(Graphics g) {
        	super.paintComponents(g);
    		dessiner(g);
        }
    }
    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
     
    package essais;
     
    import javax.swing.JFrame;
     
    public class Fenetre {
     
    	public static void main(String[] arg) {	
    		JFrame cadre = new javax.swing.JFrame("Un disque");
    		cadre.setContentPane(new Panneau());
    		cadre.setLocation(400, 300);
    		cadre.pack();
    		cadre.setVisible(true);
    		cadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
     
    }
    PS : je n'ai plus fait de java depuis quelques années et je reprends cette semaine car mon fils de 9 ans veut apprendre

    Merci à vous !
    OS : LinuxMint 20

  2. #2
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 325
    Points : 436
    Points
    436
    Par défaut
    Bonjour,

    Il me semble que paintComponents dessine les enfants alors que paintComponent dessine le composant lui même. Il faudrait donc appeler super.paintComponent() sans le "s" à la fin.

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

Discussions similaires

  1. Requete qui ne fonctionne pas sur toutes les versions de MySQL
    Par goldorax113 dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/06/2006, 11h04
  2. Réponses: 4
    Dernier message: 03/04/2006, 08h50
  3. Réponses: 7
    Dernier message: 10/02/2006, 18h00
  4. TXMLDocument, ne fonctionne pas sur tous les PC
    Par Neilos dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/10/2005, 22h33
  5. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08

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