Duvida com logica

0 respostas
oitathi

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!!!

}
Criado 14 de dezembro de 2010
Respostas 0
Participantes 1