Trabajando Con Colores En Java Y Netbeans (duda)

Iniciado por TeclaFurtiva, 16 Agosto 2012, 05:36 AM

0 Miembros y 1 Visitante están viendo este tema.

TeclaFurtiva

Saludos comunidad, tengo una duda con el manejo de colores con Java, la cuestión es que deseo hacer 3 círculos (ya los sé hacer) de diferentes colores (también lo sé hacer), aquí mi duda... ¿como hago para que los círculos no se tapen entre sí?

me explico, lo que deseo es que los colores tengan cierto nivel de transparencia y que luzcan más o menos así:

http://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Venn_diagram_cmyk.png/220px-Venn_diagram_cmyk.png

o así

http://img.blumex.net/wp-content/uploads/2010/08/diagrama-de-venn.jpg

Lo que quiero hacer es visualizar los tres círculos y que los colores se vean mezclados en donde los círculos se tocan.

Como siempre, muchas gracias por su tiempo y atención, saludos! :D

TeclaFurtiva

Ehhh lo olvidaba, aquí les anexo mi código (un main en donde se tiene un frame y en panel se dibujan los 3 circulos de 3 colores diferentes):

Código (java) [Seleccionar]

package PracticaGraphics;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class GraficoOvaloString extends JFrame{

   private JPanel contentPane;

   public static void main(String [] yay){
      EventQueue.invokeLater(new Runnable(){
         public void run(){
            try{
               GraficoOvaloString frame = new GraficoOvaloString();
               frame.setVisible(true);
            }catch(Exception e){
               e.printStackTrace();
            }
         }
      });
   }

   public GraficoOvaloString(){
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setBounds(100,100,600,500);
      contentPane = new JPanel();
      contentPane.setBorder(new EmptyBorder(5,5,5,5));
      setContentPane(contentPane);
      contentPane.setLayout(null);
      setBounds(0,0,900,900);
   }

   public void paint(Graphics joe){
      super.paint(joe);
      Color a = new Color(174,98,193);
      joe.setColor(a);
      joe.fillOval(300, 300, 400, 400);
      Color b = new Color(80,211,193);
      joe.setColor(b);
      joe.fillOval(200,400,400,400);
      Color c = new Color(200,218,73);
      joe.setColor(c);
      joe.fillOval(450, 400, 400, 400);

   }
}