Eu inspecionei a documentação da class Java para Color e descobri que posso gerar um object Color a partir de uma string de código hexadecimal (eg "#FFFFFF")
usando o Color.decode();
método.
Eu gostaria de implementar o processo inverso para um projeto no qual estou trabalhando, mas não parece haver um método já embutido na class para isso.
Existe uma maneira fácil de fazer isso?
String.format("#%06x", color.getRGB() & 0x00FFFFFF)
O mascaramento é usado para remover o componente alfa, em bits 24-31
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
Leia isto: Obtendo códigos de colors HTML com um JColorChooser
A resposta tem um método para converter uma cor em seu valor hexadecimal.
Existe outro caminho. Pensei em adicionar essa alternativa.
// 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());