J'ai une chaîne qui stocke le nom d'une couleur. Grâce à l'aide de cette variable, j'ai besoin de changer le fond du panneau. Comment ceci peut être fait???changer de couleur de panneau
Répondre
Créer une carte qui contient le nom de chaîne de la couleur et l'objet Couleur réel.
Edit:
deux autres seulement remarqués réponses suggèrent d'utiliser la méthode getColor (...). Cela ne fonctionne pas seulement magiquement et vous devez définir la couleur dans les propriétés du système. Je n'ai jamais utilisé les propriétés du système, mais je crois que vous devez les définir lorsque vous démarrez la JVM.
Pouvez-vous montrer du code? –
+1 pour la réponse de la carte - puisqu'il existe un ensemble fini (d'après un commentaire de l'OP), je recommande fortement de suivre ce mécanisme. Cela vous permet de changer les couleurs (comme mentionné par l'OP) et de recevoir cette modification par d'autres une fois que le changement a eu lieu, c'est-à-dire la prochaine fois qu'ils demandent cette couleur. – aperkins
Si les couleurs ne vont être ceux qui supports java, vous pourriez faire quelque chose comme ce qui suit:
private Color getColorByName(String colorName) {
Field[] colorFields = Color.class.getDeclaredFields();
for (Field field : colorFields) {
if (field.getName().equals(colorName.toUpper())) {
//check that this is in fact a static field,
//to make sure it is one of the colors you are looking for
int modifiers = field.getModifiers();
if ((Modifiers.STATIC & modifiers != 0)
&& (Modifiers.PUBLIC & modifiers != 0)) {
try{
return (Color)field.getValue(null);
} catch (FieldNotFoundException ex) {
//Maybe put some additional handling in here if you need it
}
}
}
}
//or return a default color
return null;
}
Quelques notes:
- Il utilise la réflexion, il sera être plus lent (bien que vous pourriez, techniquement l'utiliser pour faire une carte couleur au démarrage de l'application et juste référence que).
Il serait beaucoup plus logique de faire une carte de couleur comme mentionné par d'autres personnes ci-dessus.
Le mieux serait si les différents systèmes vous ont envoyé valeurs réelles - dire les valeurs rgb dans int ou 0,0-1,0 double format. Puis vous pouvez toujours leur donner la réponse appropriée .
Ma recommandation, si vous devez utiliser le nom de la couleur, serait qu'ils vous donnent un ensemble de noms que vous devez prendre en charge, et vous avez une condition d'erreur - soit une couleur par défaut, null, ou lancer une exception .
Espérons que cela aide.
- 1. Comment changer la couleur d'arrière-plan sur un panneau Java?
- 2. obtenir la couleur du panneau
- 3. changer les couleurs du panneau
- 4. Changer la couleur de JFileChooser
- 5. changer la couleur de self.navigationItem.prompt
- 6. Array, changer de couleur, as3
- 7. changer de couleur sur hover
- 8. Changer le composant de couleur
- 9. Couleur de fond du contenu du panneau Flex
- 10. Changer la couleur de l'écran de l'iPhone
- 11. Changer la couleur de fond de UIModalTransitionStyleFlipHorizontal
- 12. Changer la couleur de la fenêtre
- 13. ERlang liste Ctrl changer de couleur
- 14. Changer la couleur du groupe de MKPinAnnotationView
- 15. Changer la couleur de l'eclipse menuitem
- 16. Changer la couleur de la date
- 17. changer la couleur du texte de uitabbaritem
- 18. Flash/As3 - changer la couleur de focusRect
- 19. JavaScript changer le problème de couleur
- 20. Comment changer la couleur de UIBarButtonItem?
- 21. Changer la couleur de l'iPhone Slider control
- 22. Changer la couleur de jfreechart piechart
- 23. Jquery changer la couleur de fond
- 24. JLabel wont changer de couleur deux fois
- 25. Comment puis-je changer la couleur d'une image-objet sans changer la couleur de la bordure?
- 26. Comment changer la couleur d'arrière-plan d'un contrôle h: inputText dans un riche: Panneau
- 27. changer la couleur d'une balle à l'exécution
- 28. Changer la couleur d'un caractère
- 29. Changer la couleur d'un pixel
- 30. changer la couleur du bouton
Le nombre de noms de couleurs avec lesquels vous travaillez est-il fini? – Pops
oui. mais le problème est qu'il existe de nombreux programmes liés les uns aux autres, et une fois que la couleur est changée dans une forme, la même couleur doit être utilisée dans l'autre forme également – user161004