10 votes

Un moyen d'obtenir un code couleur hexagonal correspondant à un objet Couleur en Java ?

J'ai consulté la documentation de la classe Java pour la couleur et j'ai découvert que je peux générer un objet couleur à partir d'une chaîne de code hexadécimal. (e.g. "#FFFFFF") en utilisant le Color.decode(); méthode.

Je voudrais mettre en œuvre le processus inverse pour un projet sur lequel je travaille, mais il ne semble pas y avoir de méthode déjà intégrée à la classe pour cela.

Y a-t-il un moyen facile de le faire ?

19voto

Eyal Schneider Points 11399
String.format("#%06x", color.getRGB() & 0x00FFFFFF)

Le masquage est utilisé pour supprimer la composante alpha, dans les bits 24-31.

3voto

Nikita Tkachenko Points 745
Color color = Color.BLUE;
Formatter f = new Formatter(new StringBuffer("#"));
f.format("%02X", color.getRed());
f.format("%02X", color.getGreen());
f.format("%02X", color.getBlue());
f.toString(); //#0000FF

1voto

Toon Casteele Points 743

Lisez ceci : Obtenir des codes de couleur Html avec un JColorChooser

La réponse contient une méthode pour convertir une couleur en sa valeur hexadécimale.

0voto

ChrisK Points 158

Il y a un autre moyen. Je pensais juste ajouter cette alternative.

// ARGB = (255, 255, 0, 0) (Red) 
// hex -> "ffff0000"
String hex = Integer.toHexString(color.getRGB());

// Reduced to RGB: hex -> "#ff0000"
hex = "#" + hex.substring(2, hex.length());

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X