Comment définir une couleur d'arrière-plan d'un JButton en Java?
Je suis en train d'élaborer un Java Application de Bureau. Dans ce que j'ai 4 JButtons
sur un JPanel
. Maintenant, je veux que quand on clique sur un bouton de son changement de couleur de fond à une autre couleur (disons orange) pour représenter qu'il a été cliqué et la couleur d'arrière-plan de toutes les autres 3 boutons de rétablir les couleurs par défaut (dans le cas où ils avaient Orange couleur d'arrière-plan).
Donc, à un moment, un seul bouton peut avoir la couleur orange.
L'approche actuelle que j'ai demandé, c'est que j'ai mis en œuvre le code suivant dans la xxxActionPerformed()
méthode de JButton bouton1
button1.setBackground(Color.Orange);
button2.setBackground(Color.Gray);
button3.setBackground(Color.Gray);
button4.setBackground(Color.Gray);
et de même pour le reste trois boutons.
Maintenant, je ne veux pas le fond d'écran de couleur de Gris (pour unclicked bouton). Au lieu de cela, je veux que la couleur de fond par défaut de sorte que le fond d'écran de couleur sera de s'adapter à la look-and-feel de l'interface graphique en fonction de la finalité de l'utilisateur de la plateforme de look-and-feel.
T1. Comment puis-je obtenir la couleur de fond par défaut?
T2. Est-ce la bonne approche pour faire cela ou Est-il un autre mécanisme par lequel je peux grouper tous les quatre boutons dans un groupe de boutons, de sorte que seulement un seul peut avoir la propriété spécifiée à la fois (comme des boutons radio)?
Vous devez vous connecter pour publier un commentaire.
suffit d'utiliser
null
à utiliser la couleur par défaut:envisager d'utiliser JToggleButtons avec un ButtonGroup, choisir l'Icône et PressedIcon des boutons. Pas besoin de changer la couleur d'arrière-plan.
null
fiable?null
ne fonctionne pas pour moi. Si la valeur est null, le bouton devient transparent, ce qui est un problème avec une couleur différente d'arrière-plan. C'était sur un de vanille windows sun jdk 7.Vous pouvez obtenir la norme de couleur de fond pour les boutons de la UIManager:
Autant que je sache, les clés pourrait changer dans look & sent. Voici une belle webstart application qui montre toutes les clés disponibles:
http://tips4java.wordpress.com/2008/10/09/uimanager-defaults/
Voici une section transversale de la Touche""."la toile de fond sur cette base exemple:
T1.: Pour obtenir l'interface graphique couleur du bouton, il suffit de faire ce
Avec cette classe (java.awt.SystemColor.*), vous pouvez obtenir la couleur de tous les éléments de votre interface utilisateur.
T2.: Je n'ai jamais entendu à propos du regroupement des boutons. Alors, je ne peux pas vous répondre à celui-ci.
Espère que cela aide.
Si vous le souhaitez, vous pouvez redéfinir l'ensemble de votre bouton de l'INTERFACE utilisateur
et dans votre pièce principale de code à utiliser comme
- Ce la façon dont je l'utilise .. vous pouvez avoir votre propre façon trop
avez-vous regardé dans le décorateur modèle en java, on passe un bouton dans une méthode qui décore en fonction de si la touche est active, par exemple si elle planait au-dessus.
vous appelez cette méthode de la MouseEvent ou ActionEvent méthodes et juste question d'un repaint() après. mettez tous vos boutons dans une matrice ou un vecteur et boucle à travers elle se passer de l'un à l'decorateButton méthode et donner la initail la valeur booléenne false, alors l'événement attribuez la valeur true.
De cette façon, la valeur initiale est par défaut et que le bouton est ensuite décoré sur les boutons apparaissent à agir en tant que partie d'un groupe