Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/04/2012, 17:46
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Colocar un circulo degradado en una ventana degradada

Tendrás que hacer unas pequeñas operaciones para calcular el punto de inicio de la elipse.

Código Java:
Ver original
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package gradiente;
  6.  
  7. import java.awt.Color;
  8. import javax.swing.JPanel;
  9. import java.awt.GradientPaint;
  10. import java.awt.Graphics;
  11. import java.awt.Graphics2D;
  12. import java.awt.geom.Ellipse2D;
  13. /**
  14.  *
  15.  * @author Usuario
  16.  */
  17. public class degradadoHorizontal extends JPanel {
  18.  
  19.     public degradadoHorizontal() {
  20.     }
  21.  
  22.     public void paint(Graphics g){
  23.         Graphics2D g2d=(Graphics2D)g;
  24.  
  25.         float totalHeight = getHeight();
  26.         float totalWidth = getWidth();      
  27.  
  28.         //Creo el degradado horizontal con las
  29.         //coordenadas (0,0) al (anchura del componente, 0)
  30.         GradientPaint horizontalGradient = new GradientPaint(0,0, Color.RED, totalWidth ,0,Color.BLUE);
  31.         g2d.setPaint(horizontalGradient);
  32.         g2d.fillRect(0,0, (int)totalWidth, (int)totalHeight);
  33.  
  34.  
  35.         float width = 150, height = 150;
  36.  
  37.         //Creo el degradado horizontal con las
  38.         //coordenadas (0,0) al (anchura del componente, 0)
  39.         // Gradiente de color de azul a verde
  40.        
  41.  
  42.         float coordenadaX, coordenadaY;
  43.  
  44.    
  45.         coordenadaX =  (totalWidth /2) - (width /2);
  46.         coordenadaY =  (totalHeight / 2) - (height /2);
  47.  
  48.         GradientPaint gradiente = new GradientPaint(coordenadaX,coordenadaY,Color.blue, coordenadaX+width,coordenadaY+height,Color.green);
  49.         // Se fija el gradiente
  50.         g2d.setPaint( gradiente );
  51.        
  52.         // Circulo a rellenar
  53.         Ellipse2D circulo = new Ellipse2D.Float(coordenadaX,coordenadaY,width,height);
  54.         g2d.setPaint(gradiente);
  55.         g2d.fill(circulo);
  56.     }
  57.  
  58. }