Crie cores aleatórias em Java

Farkhanda Athar 12 outubro 2023
Crie cores aleatórias em Java

A classe de cores é usada para definir cores que estão no espaço de cores RGB padrão ou cores em qualquer espaço de cores definido pelo termo espaço de cores. Cada cor recebe um número alfa que é implicitamente definido como 1.0, bem como um valor explícito que o construtor especifica. Os valores alfa definem a transparência de uma cor. É representado como uma flutuação arbitrária no intervalo de 0,0 entre 1,0 ou 0 a 255. Um número 1,0 ou 255 indica que o matiz é opaco, enquanto os valores alfa de zero ou 0,0 indicam que é transparente.

Ao criar uma cor usando um alfa explícito ou ao adquirir os componentes alfa e de cor dos componentes de cor, não seja pré-multiplicado por um componente alfa. O espaço de cores padrão para usar a API 2D (tm) Java API 2D (tm) será sRGB, um espaço de cores RGB padrão proposto.

Devemos fazer uso da biblioteca aleatória.

import java.util.Random;

Crie um gerador aleatório.

Random rand = new Random();

Como as cores são divididas em azul, vermelho e verde, é possível criar uma cor inteiramente nova criando cores primárias aleatórias. Aqui, a classe Java Color aceita 3 floats, começando de zero a um.

float r = rand.nextFloat();
float g = rand.nextFloat();
float b = rand.nextFloat();

Para criar a cor final, alimente as cores primárias no construtor:

Color randomColor = new Color(r, g, b);

Também é possível criar vários efeitos aleatórios usando esse método, criando cores aleatórias com um foco maior em cores específicas. Passe mais azul e verde para criar uma cor aleatória rosa. O código a seguir pode criar uma cor aleatória com mais vermelho (geralmente rosado).

float r = rand.nextFloat();
float g = rand.nextFloat() / 2f;
float b = rand.nextFloat() / 2f;

Para garantir que apenas cores claras sejam geradas, você pode gerar cores que tenham um mínimo de 0,5 de cada elemento no espectro de cores. O código a seguir produzirá apenas sombras claras ou brilhantes.

float r = rand.nextFloat() / 2f + 0.5;
float g = rand.nextFloat() / 2f + 0.5;
float b = rand.nextFloat() / 2f + 0.5;

Muitos outros recursos de cor podem ser utilizados nesta classe de Color, por exemplo, tornando a cor mais brilhante.

randomColor.brighter();

Código de exemplo

import java.awt.*;
import javax.swing.*;

class color extends JFrame {
  // constructor
  color() {
    super("color");
    Color c = Color.yellow;
    JPanel p = new JPanel();
    p.setBackground(c);

    setSize(200, 200);
    add(p);
    show();
  }

  // Main Method
  public static void main(String args[]) {
    color c = new color();
  }
}

Algumas dicas úteis para cores Java

  • Um lugar estranho para começar random() - Esta é a função color() gerada ou em uma inicialização estática. No momento, é um pouco estranho que você tenha que adicionar o gerador aleatório como um parâmetro para seu programa. Você deve considerar o uso de inicialização estática.
  • Número estranhamente mágico 16777215. Qual é esse número? Não é totalmente certo que 0xFFFFFF é o valor de cor mais alto. É importante notar que a seguir Int(n) fornece um inteiro no intervalo entre 0 e n; no entanto, não inclui o número n. Além disso, você deve usar 0x1000000.
  • Trapaceando para parecer ter 6 caracteres. Se você multiplicar 0x1000000 pelo número antes de convertê-lo em hexadecimal, obterá seis dígitos. Isso significa que você não precisa do truque para obter seis caracteres. Você também pode retornar como uma substring (em vez de usar um loop)。

Artigo relacionado - Java Color