gente eu tô com a seguinte duvida:
eu tenho o seguinte metodo:
public void changeColor(Color colorTarget, Color colorFont, Color colorGrid) {
int q=0;
//removendo componentes
layeredPane.removeAll();
Iterator iterator =listTarget.iterator();
for(int i=0;i<listTarget.size();i++){
Target aux = (Target) iterator.next();
if(aux.equals(listTarget.getLast())){
q=1;
}
//Criando um novo JLayer de Target
JLabel newTarget = new JLabel();
System.out.println(q);
metodos.drawTarget(colorTarget,q);
newTarget = metodos.getTarget();
newTarget.setLocation(aux.getPosTargetX() , aux.getPosTargetY());
newTarget.setVisible(true);
//inserindo as layers na layeredPane
layeredPane.add(newTarget, new Integer(atualizaContLabels()));
scrollImage.validate();
System.out.println("---------------");
}//end while
}//end metodo
Esse metodo deveria simplesmente remover todas as minhas layers, e depois ir criando para cada objeto da minha listTarget um novo desenho. E cada desenho deveria ser inserido em uma layer diferente. Sendo que apenas o ultimo objeto da minha lista deveria ter seu desenho criado com o aplha 100% e os demais com alpha 50%, mas isso não acontece…
Na classe Metodos o metodo drawTarget eh assim:
public void drawTarget(Color color, int k){
int p;
if(k>0){
p=100;
}
else{
p=50;
}
Graphics2D gr = bf3.createGraphics();
gr.setColor(color);
gr.setComposite(AlphaComposite.SrcOver.derive((float)p/100));
gr.setStroke(new BasicStroke(2.0f));
gr.drawOval(8,8,24,24);//oval
gr.drawOval(12,12,16,16);//oval
gr.setStroke(new BasicStroke(2.0f));
gr.drawLine(2,20, 17,20);//linha horizontal 1
gr.drawLine(23,20,38,20);// linha horizntal 2
gr.drawLine(20,3,20,18);//linha vertical 1
gr.drawLine(20,23,20,38);//linha vertival 2
gr.dispose();
imagem3=new JLabel(new ImageIcon(bf3));
imagem3.setLocation(0,0);
imagem3.setSize(40,40);
}
E o metodo gerTarget tb da classe métodos é assim:
public JLabel getTarget(){
return imagem3;
}
Parece simples… mas o q acontece é q quando eu chamo o metodo change color, ele nunca muda o meu alpha… Gostaria imensamente de saber… jah que quando printo a tela os resultados q aparecem são convincentes:
1
0
1
0
0
1
0
0
0
1
Alguém pode me ajudar por caridade???
Obrigada!!!