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

 Java Discussion :

Le setBackground sur mon JPanel bugue !


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Par défaut Le setBackground sur mon JPanel bugue !
    Bonjour,
    Je suis novice en Swing et
    J'ai essayé tout c'que je pense savoir pour résoudre ce problème mais la, je m'en remet à vous...

    Je veux que quand je veuille tester une couleur, que tout mon JPanel soit teint de cette couleur, or, j'ai un espèce de rectangle de couleur en haut qui se teint en noir uniquement...








    Lorsque j'appuie sur Enter, rien ne se passe...

    Voici mon bout de code :




    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
     
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
    public class Exa extends JFrame {
            // les JSliders sont pour la suite de l'exercices
    	// private JSlider js = new JSlider(JSlider.VERTICAL, 0, 255, 0);
    	private JTextField jtfrouge;
    	private JTextField jtfvert;
    	private JTextField jtfbleu;
    	private JButton btAnnuler;
     
    	public Exa() {
    		JPanel p = new JPanel();
    		Contenu contenu = new Contenu();
    		p.add(contenu);
    		getContentPane().add(p);
    		setSize(600, 200);
    		setResizable(false);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setLocationRelativeTo(null);
    	}
     
    	class Contenu extends JPanel implements ActionListener {
     
    		public Contenu() {
    			jtfrouge = new JTextField("0", 4);
    			jtfrouge.setBackground(Color.RED);
    			jtfrouge.setHorizontalAlignment(JTextField.CENTER);
    			add(jtfrouge);
     
    			jtfvert = new JTextField("0", 4);
    			jtfvert.setBackground(Color.green);
    			jtfvert.setHorizontalAlignment(JTextField.CENTER);
    			add(jtfvert);
     
    			jtfbleu = new JTextField("0", 4);
    			jtfbleu.setBackground(Color.blue);
    			jtfbleu.setHorizontalAlignment(JTextField.CENTER);
    			add(jtfbleu);
     
    			btAnnuler = new JButton("Annuler");
    			btAnnuler.addActionListener(this);
    			add(btAnnuler);
     
    			this.setBackground(new Color(0, 0, 0));
    		}
     
    		public void actionPerformed(ActionEvent e) {
    			if (e.getSource().equals(btAnnuler)) {
    				jtfrouge.setText("0");
    				jtfvert.setText("0");
    				jtfbleu.setText("0");
    				this.setBackground(new Color(0, 0, 0));
    			} else {
    				int red = Integer.parseInt(jtfrouge.getText());
    				int green = Integer.parseInt(jtfvert.getText());
    				int blue = Integer.parseInt(jtfbleu.getText());
    				this.setBackground(new Color(red, green, blue));
    			}
    		}
    	}
    }



    bien entendu, j'ai ma Main à côté, mais dans une autre classe...

    Je vous remercie d'avance pour vos suggestions




    PS : Tant que j'y suis j'en profite pour vous demander quelle serait la méthode qui me permettrait d'espacer mes JTextField les uns des autres pour qu'il y aie par exemple 4-5 cm entre les 3... MERCI

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par CosaNostra Voir le message
    Je veux que quand je veuille tester une couleur, que tout mon JPanel soit teint de cette couleur, or, j'ai un espèce de rectangle de couleur en haut qui se teint en noir uniquement...
    Je comprend peut-être mal mais cela me semble normal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setBackground(new Color(0, 0, 0));

    Citation Envoyé par CosaNostra Voir le message
    Lorsque j'appuie sur Enter, rien ne se passe...
    Le listener n'est appliqué qu'au bouton et pas aux textfields...


    a++

  3. #3
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Tu ajoutes ton objet Contenu dans le panel p .. hors ce panel a comme layout celui par defaut pour un panel : FlowLayout.

    Ce FlowLayout fait que tout objet ajouté dedans prend son prefferedSize et non toute la place ...

    soit tu supprimes ce panel P et tu ajoutes direct ton Contenu au ContentPane de ta Frame.
    soit tu set le layout du panel p pour avoir un layout qui oblige ton panel Contenu à prendre toute la place.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Par défaut
    Merci à vous deux, effectivement j'avais fait deux erreurs importantes...

    première de ne pas attribuer un Layout à mon Panel p, et deuxième de ne pas avoir ajouté d'écouteurs à mes JTextFields...
    Merci pour le coup de pouce

    Au fait, tant que j'y suis j'en profite pour vous demander quelle serait la méthode qui me permettrait d'espacer mes JTextField les uns des autres pour qu'il y aie par exemple 4-5 cm entre les 3... MERCI

    Après ça je place mon sujet en résolu

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Par défaut
    Bon, j'me sis lancé dans le GridBagLayout...
    C'est nettement + confortable pour l'interface graphique désordonnée que je veux faire.
    Merci quand même pour vos débuts de réponse.

    Sujet Terminé...

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

Discussions similaires

  1. Effacer mon dessin sur mon JPanel
    Par maxa88 dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 01/06/2015, 14h37
  2. JRadioButtons invisibles sur mon JPanel
    Par Nemesium dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 17/04/2014, 15h25
  3. Pas de repositionnement de mes JLabel sur mon JPanel ?
    Par zzzer dans le forum Composants
    Réponses: 7
    Dernier message: 11/05/2009, 12h45
  4. Réponses: 4
    Dernier message: 21/07/2008, 22h32
  5. Paramétrer le nombre de connexion sur mon serveur Mysql
    Par Zerga dans le forum Installation
    Réponses: 2
    Dernier message: 12/12/2003, 19h21

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