Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/04/2012, 23:17
CrizhOker
 
Fecha de Ingreso: marzo-2012
Ubicación: México D.F
Mensajes: 7
Antigüedad: 12 años, 1 mes
Puntos: 0
Colocar un circulo degradado en una ventana degradada

Hola amigos!

aqui tengo una pregunta, hize una ventana degradada [Azul & Rojo] e inicie con dos clases una para colocar el degrado & otra para hacer un degradado pero circular, a la hora de correr el programa me sale de esta manera:


Aqui es la cuestion necesito su apoyo u orientacion de como hacer para que ese circulo quede dentro del degradado rectangular.

Aqui estan los codigos que inicie:

en el MAIN
Código:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Proyects;
import java.awt.GridLayout;
import javax.swing.JFrame;

/**
 *
 * @author Usuario
 */
public class Main extends JFrame{

    private static void alumnos(){
        //procedo a crear y preparar mi ventana

        JFrame ventana= new JFrame("Mis Degrados");
        ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ventana.getContentPane().setLayout(new GridLayout());
        ventana.getContentPane().add (new degradadoHorizontal());
        ventana.getContentPane().add (new Circulo());
        ventana.setVisible(true);
        ventana.setSize(400,400);
    }
        /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        javax.swing.SwingUtilities.invokeLater(new Runnable(){
         public void run(){
             alumnos();
         }
         });
    }
}
-------------------------------------------------------------------------------------------
Aqui mi primer Clase

Código:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Proyects;
import java.awt.Color;
import javax.swing.JPanel;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
/**
 *
 * @author Usuario
 */
class degradadoHorizontal extends JPanel {

    public degradadoHorizontal() {
    }
    public void paint(Graphics g){
        Graphics2D g2d=(Graphics2D)g;
        //Creo el degradado horizontal con las
        //coordenadas (0,0) al (anchura del componente, 0)
        GradientPaint horizontalGradient = new GradientPaint (0,0, Color.RED, getWidth(),0,Color.BLUE);
        g2d.setPaint(horizontalGradient);
        g2d.fillRect(0,0, getWidth(), getHeight());
    }

}
-------------------------------------------------------------------------------------
& aqui mi segunda clase donde coloque el circulo degradado
Código:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Proyects;
import java.awt.geom.*;
import java.awt.Color;
import javax.swing.JPanel;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
/**
 *
 * @author DvdzhOk
 */
class Circulo extends JPanel {

    public Circulo() {
    }
    public void paint(Graphics g){
        Graphics2D g2d=(Graphics2D)g;
        //Creo el degradado horizontal con las
        //coordenadas (0,0) al (anchura del componente, 0)
        // Gradiente de color de azul a verde
        GradientPaint gradiente = new GradientPaint(75,75,Color.blue, 100,100,Color.green);
        // Se fija el gradiente
        g2d.setPaint( gradiente );
        // Circulo a rellenar
        Ellipse2D circulo = new Ellipse2D.Float(10,10,150,150);
        g2d.setPaint(gradiente);
        g2d.fill(circulo);
    }

}
Ojala puedan ayudarme! Gracias de antemano Pd. Trabajo con Netbeans