Breves: Componentes Swing translúcidos

written by uve 23 April 2010

Ahora le toca el turno a la transparencia. Realizar componentes translúcidos es bastante sencillo. Podemos incluso a realizar efectos fade-in y fade-out jugando con la transparencia y un temporizador. Realmente no sé como afecta esto al rendimiento de la aplicación, porque no he llegado tan lejos.

El truco consiste en sobreescribir el método paintComponent() de la clase en cuestión y aplicar la transparencia antes de dibujar el componente:

@Override
public void paintComponent(Graphics g)
{
   Graphics2D g2 = (Graphics2D)g;
   g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
   g2.setComposite(AlphaComposite.SrcOver.derive(0.2f));
   super.paintComponent(g);
}

Donde podemos jugar con el valor de alpha, 0.2f, para aplicar más o menos transparencia.

Tags

La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.