Crear colores aleatorios en Java

Farkhanda Athar 12 octubre 2023
Crear colores aleatorios en Java

La clase de color se utiliza para definir colores que están en el espacio de color estándar RGB o colores en cualquier espacio de color definido por el término espacio de color. A cada color se le asigna un número alfa que se establece implícitamente en 1.0, así como un valor explícito que especifica el constructor. Los valores alfa definen la transparencia de un color. Se representa como un flotante arbitrario dentro del rango de 0.0 entre 1.0 o 0 a 255. Un número que es 1.0 o 255 indica que el tono es opaco, mientras que los valores alfa de cero o 0.0 indican que es transparente.

Al crear un color utilizando un alfa explícito o al adquirir los componentes alfa y de color de los componentes de color, no se pre-multiplique por un componente alfa. El espacio de color predeterminado para usar la API 2D (tm) de Java API 2D (tm) será sRGB, un espacio de color RGB estándar propuesto.

Deberíamos hacer uso de la biblioteca random.

import java.util.Random;

Crea un generador aleatorio.

Random rand = new Random();

Dado que los colores se dividen en azul, rojo y verde, es posible crear un color completamente nuevo haciendo colores primarios aleatorios. Aquí la clase Java Color acepta 3 flotantes, comenzando de cero a uno.

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

Para crear el color final, introduzca los colores primarios en el constructor:

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

También es posible crear varios efectos aleatorios utilizando este método haciendo colores aleatorios con un mayor enfoque en colores específicos. Pase más azul y verde para crear un color aleatorio más rosado. El siguiente código puede crear un color aleatorio con más rojo (generalmente rosado).

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

Para asegurarse de que solo se generen colores claros, puede generar colores que tengan un mínimo de 0,5 de cada elemento en el espectro de colores. El siguiente código producirá solo tonos claros o brillantes.

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

Se pueden utilizar muchas otras capacidades de color dentro de esta clase de Color, por ejemplo, haciendo que el color sea más brillante.

randomColor.brighter();

Código de ejemplo

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();
  }
}

Algunos consejos útiles para los colores de Java

  • Un lugar extraño para comenzar random() - Esta es la función color() generada o en una inicialización estática. Por el momento, es un poco extraño que tenga que agregar el generador aleatorio como parámetro para su programa. Debería considerar el uso de la inicialización estática.
  • Número extrañamente mágico 16777215. ¿Cuál es este número? No es del todo seguro que sea el 0xFFFFFF el valor de color más alto. Es importante tener en cuenta que el siguiente Int(n) da un número entero en el rango entre 0 y n; sin embargo, no incluye el número n. Además, debe utilizar 0x1000000.
  • Hacer trampa para que parezca ser de 6 personajes. Si multiplica 0x1000000 por el número antes de convertirlo en hexadecimal, obtendrá seis dígitos. Significa que no necesita el truco para obtener seis caracteres. También puede regresar como una subcadena (en lugar de usar un bucle)。

Artículo relacionado - Java Color