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: :stuck_out_tongue:](//www.guj.com.br/images/emoji/twitter/stuck_out_tongue.png?v=5)
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