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

Agents de placement/Fenêtres Java Discussion :

Layout et couleur de fond


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut Layout et couleur de fond
    Bonjour,

    Je n'arrive pas à comprendre pourquoi, lorsque j'utilise un layout, la couleur du panel posé dessus reste gris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
              jp = new JPanel();
              jp.setLayout(new BorderLayout());
              jp.setSize(w,h);
              jp.add(scrollPane,BorderLayout.CENTER);          
              jp.setBackground(Color.WHITE);              
              JOptionPane jop = new JOptionPane(new Object[] {
                "Select a value",
                jp
                    },
                            JOptionPane.PLAIN_MESSAGE,
                            JOptionPane.OK_CANCEL_OPTION
                          );
    Alors que si je retire le layout, le panel est bien coloré en blanc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
              jp = new JPanel();
              //jp.setLayout(new BorderLayout());
              jp.setSize(w,h);
              jp.add(scrollPane);          
              jp.setBackground(Color.WHITE);              
              JOptionPane jop = new JOptionPane(new Object[] {
                "Select a value",
                jp
                    },
                            JOptionPane.PLAIN_MESSAGE,
                            JOptionPane.OK_CANCEL_OPTION
                          );
    Une idée

  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,


    Avec un BorderLayout le composant central (le JScrollPane) prend tout l'espace nécessaire et recouvre donc la totalité de ton JPanel. Du coup le gris que tu vois ne vient pas de ton JPanel mais des composant contenu dans ton JScrollPane (ou du Viewport de ce dernier)

    a++

  3. #3
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Mais le JPanel contient un scrollpane, lui aussi coloré en blanc avec une JTable dont le background est également coloré en blanc. Pourtant le rendu final reste gris.

  4. #4
    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
    Citation Envoyé par SheikYerbouti Voir le message
    Mais le JPanel contient un scrollpane, lui aussi coloré en blanc avec une JTable dont le background est également coloré en blanc. Pourtant le rendu final reste gris.
    Si la JTable est vide ou plus petite que l'espace fourni par le JScrollPane, elle ne prend pas l'espace disponible (donc on ne voit pas le blanc de la JTable). Et le fond du JScrollPane est invisible car il comporte automatiquement un Viewport.

    Donc deux solutions :
    • Utiliser setFillsViewportHeight() sur la JTable pour la forcer à occuper au minimum toute la hauteur du JScrollPane :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      	JTable table = new JTable();
      	table.setFillsViewportHeight(true);
       
      	JScrollPane scroll = new JScrollPane(table);
      	JPanel panel = new JPanel(new BorderLayout());
       
      	panel.add(scroll);
       
      	JOptionPane.showMessageDialog(null, panel);
      Le blanc que l'on voit ici correspond à la JTable


    • Définir la couleur de fond du viewport du JScrollPane :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      	JTable table = new JTable();
      	JScrollPane scroll = new JScrollPane(table);
      	JPanel panel = new JPanel(new BorderLayout());
       
      	scroll.getViewport().setBackground(Color.WHITE);
       
      	panel.add(scroll);
       
      	JOptionPane.showMessageDialog(null, panel);
      Ici l'espace blanc correspond à l'espace laissé libre par la JTable.



    a++

  5. #5
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Merci, j'essaie cela ASAP. Quelle solution préfères-tu ?

  6. #6
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Je choisis la seconde solution, car la première semble spécifique à la version 6.

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

Discussions similaires

  1. TDBGRID - Couleur de fond d'une seule cellule
    Par cgo dans le forum Bases de données
    Réponses: 5
    Dernier message: 11/09/2009, 10h16
  2. Couleur de fond cellule excel
    Par Grouik dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 26/07/2004, 09h43
  3. Réponses: 4
    Dernier message: 23/06/2004, 14h30
  4. debutant : couleur de fond d'une application direct3D
    Par ptidrone dans le forum DirectX
    Réponses: 2
    Dernier message: 12/06/2004, 17h08
  5. Changer la couleur de fond de l'écran
    Par tnk dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 19/01/2003, 01h37

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