Ci-dessous, le code qui crée 9 boutons sous la forme gridlayout sur un panneau spécifique3. Ce que je veux, c'est que l'arrière-plan de chaque bouton soit noir avec du texte gris dessus. Quelqu'un peut-il aider s'il vous plaît?
for(int i=1;i<=9;i++)
{
p3.add(new JButton(""+i));
}
Consultez JButton documentation. Portez une attention particulière aux méthodes setBackground
et setForeground
héritées de JComponent
.
Quelque chose comme:
for(int i=1;i<=9;i++)
{
JButton btn = new JButton(String.valueOf(i));
btn.setBackground(Color.BLACK);
btn.setForeground(Color.GRAY);
p3.add(btn);
}
Simple:
btn.setBackground(Color.red);
Pour utiliser les valeurs RVB:
btn[i].setBackground(Color.RGBtoHSB(int, int, int, float[]));
for(int i=1;i<=9;i++) {
p3.add(new JButton(""+i) {{
// initialize the JButton directly
setBackground(Color.BLACK);
setForeground(Color.GRAY);
}});
}
Changer la propriété de fond peut ne pas être suffisant car le composant ne ressemblera plus à un bouton. Vous devrez peut-être ré-implémenter la méthode Paint comme dans ici pour obtenir un meilleur résultat:
Vous pouvez ou non utiliser la méthode setOpaque pour vous assurer que les couleurs s'affichent en passant à true pour la méthode.
Utilisez la méthode setBackground pour définir le fond et setForeground pour changer la couleur de votre texte. Notez toutefois que placer du texte gris sur un fond noir peut rendre votre texte un peu difficile à lire.
Il semble que la méthode setBackground () ne fonctionne pas bien sur certaines plates-formes (j'utilise Windows 7). J'ai trouvé cette réponse à cette question utile. Cependant, je ne l'ai pas entièrement utilisé pour résoudre mon problème. Au lieu de cela, j'ai décidé qu'il serait beaucoup plus facile et presque aussi esthétique de colorer un panneau à côté du bouton.