Ajuda com Grupo de Esferas - Graphics2D.fillOval

Bom pessoal, Estou com um problema a ser resolvido e estou meio sem saber como fazer então vou postar uma descrição dele aqui e espero que vocês me deem dicas.

O problema é o seguinte tenho que faz três grupos de Esferas (Graphics2D - fillOval), tenho uma classe com este metodo.

public void paintComponent(Graphics g) { g = (Graphics2D) g; g.setColor(cor); g.fillOval(x, y, Constantes.DIM_ESFERAS, Constantes.DIM_ESFERAS); g.dispose(); }
Onde eu junto um grupo de esferas em uma Classe JComponent utilizando o Layout GroupLayout

 private void addEsf(PaintEsferas esf) {
        GroupLayout gl = new GroupLayout(esf);
        esf.setLayout(gl);
        gl.setHorizontalGroup(
                gl.createParallelGroup(GroupLayout.Alignment.TRAILING).addGap(0, 20, Short.MAX_VALUE));
        gl.setVerticalGroup(
                gl.createParallelGroup(GroupLayout.Alignment.TRAILING).addGap(0, 20, Short.MAX_VALUE));
        this.add(esf);
    }

Porém meu problema maior está em como eu separar um JPanel em 3 partes onde eu vou ter nas partes 1 e 2 uma quantidade de bolas a serem somadas que aparecerá na terceira parte e tem a necessidade de ser em um mesmo JPanel pois a etapa posterior a que estou vou ter que fazer com que estas esferas se movimente da area 1 para area 2 somando e indo para a area 3.

Os problemas a serem resolvidos será:
[list] Agrupar 3 Grupos de Esferas em um mesmo JPanel[/list][list] Separar este JPanel em 3 Partes semi-independentes [/list]
Se alguém tiver dicas a me passar fico agradecido :stuck_out_tongue:

Não entendi bulhufas o que você quer, mas normalmente em vez de você posicionar cada figura em um JPanel separado e tentar posicionar os JPanels (o que é sempre algo muito chato) , no caso de desenhar figuras você as desenha todas em um JPanel só, para você ter maior controle sobre a posição de cada uma das figuras.

N entendi muito bem mas…
pense em um “mundo” com 3 áreas(cada um é um JPanel), exemplo
-Cada ‘Area’ tem tamanho 50x50
-‘Area 1’ está a esquerda da ‘Area 2’
-‘Area 2’ está a esquerda da ‘Area 3’(ou seja as 3 areas posicionadas na horizontal)
Agora junte as areas e vc terá um “mundo” 150x50, entao se uma bolinha estiver na posiçao 2x5 estara na ‘Area 1’, se uma bolinha estiver na posiçao 60x23 estara na ‘Area 2’ e se uma bolinha estiver na posiçao 140x28 estara na ‘Area 3’

int x = bola.getX();//Centro da esfera int y = bola.getY();//Centro da esfera int raio = bola.getRaio(); //considerando cada area 50x50 posicionadas horizontalmente if (x > 0 - raio && x < 50 + raio) { pintaNaArea1(bola); } if (x > 50 - raio && x < 100 + raio) { pintaNaArea2(bola); } if (x > 100 - raio && x < 150 + raio) { pintaNaArea3(bola); }

[quote=ChronosSage]N entendi muito bem mas…
pense em um “mundo” com 3 áreas(cada um é um JPanel), exemplo
-Cada ‘Area’ tem tamanho 50x50
-‘Area 1’ está a esquerda da ‘Area 2’
-‘Area 2’ está a esquerda da ‘Area 3’(ou seja as 3 areas posicionadas na horizontal)
Agora junte as areas e vc terá um “mundo” 150x50, entao se uma bolinha estiver na posiçao 2x5 estara na ‘Area 1’, se uma bolinha estiver na posiçao 60x23 estara na ‘Area 2’ e se uma bolinha estiver na posiçao 140x28 estara na ‘Area 3’

int x = bola.getX();//Centro da esfera int y = bola.getY();//Centro da esfera int raio = bola.getRaio(); //considerando cada area 50x50 posicionadas horizontalmente if (x > 0 - raio && x < 50 + raio) { pintaNaArea1(bola); } if (x > 50 - raio && x < 100 + raio) { pintaNaArea2(bola); } if (x > 100 - raio && x < 150 + raio) { pintaNaArea3(bola); }

[/quote]

Muito obrigado, é mais ou menos isto que eu estava com dificuldade de raciocinar…
Estou trabalhando nisto…

Agradecido