Limpar uma area de desenho

0 respostas
J

Olá!

Pessoal to fazendo um programinha de graficos. Uso o combobox para alterar as propriedades dos objetos. Queria saber como faço para alterar a cor só do grafico grande quando selecionar uma cor no combo, sendo que tenho um combo pra o grafico grande e outro combo para o grafico pequeno. Aqui ele define o tamanho do grafico que desenha duas barras e eu quero alterar só a cor do maior:
private void desenhaHistograma(){
        try{
        y1= Integer.parseInt(campo1.getText());
        yb1= Integer.parseInt(campo2.getText());
          if (y1<= -1){
               JOptionPane.showMessageDialog(null, "O valor digitado não pode ser negativo!" );
                }if (yb1<=-1){
                    JOptionPane.showMessageDialog(null, "O valor digitado não pode ser negativo!");
                 }
                else{
        painelDeDesenho.setY2(Integer.parseInt(campo1.getText()));
        painelDeDesenho.setY1(0);
        painelDeDesenho.setX1(40);
        painelDeDesenho.setX2(40);

        painelDeDesenho.setYb2(Integer.parseInt(campo2.getText()));
        painelDeDesenho.setYb1(0);
        painelDeDesenho.setXb1(120);
        painelDeDesenho.setXb2(40);

        painelDeDesenho.repaint();
         }
        }
        catch(NumberFormatException e) {
               JOptionPane.showMessageDialog(null, " Este campo não permite a entrada da letras! "+ e.getMessage());
         }
    }
Esse é o codigo do meu botao OK
class HandLerButton implements ActionListener{
             public void actionPerformed(ActionEvent e) {
            if (e.getSource()instanceof JButton) {
                JButton b = (JButton) e.getSource();
                   int tipo = comboTipoGrafico.getSelectedIndex();
        if (tipo == 0) {
        painelDeDesenho.setY2(0);
        painelDeDesenho.setY1(0);
        painelDeDesenho.setX1(0);
        painelDeDesenho.setX2(0);
        painelDeDesenho.setYb2(0);
        painelDeDesenho.setYb1(0);
        painelDeDesenho.setXb1(0);
        painelDeDesenho.setXb2(0);
        painelDeDesenho.repaint();
                desenhaPizza();
            }else{
        painelDeDesenho.setB2(0);
        painelDeDesenho.setB1(0);
        painelDeDesenho.setA1(0);
        painelDeDesenho.setA2(0);
        painelDeDesenho.setBb2(0);
        painelDeDesenho.setBb1(0);
        painelDeDesenho.setAb1(0);
        painelDeDesenho.setAb2(0);
        painelDeDesenho.repaint();
                desenhaHistograma();
             }
                //   aqui acho que vai o código para altera a cor do grafico grande
            }         
       }
    }
Tenho uma classe separada que define o tipo do grafico se barras ou pizza e já define uma cor default
protected void paintComponent(Graphics g){
         super.paintComponents(g);
        g.setColor(Color.white);
        g.fillRect(0, 0, this.getWidth(),this.getHeight());


        g.setColor(Color.GREEN);
        g.fillRect(x1, y1, x2,y2);
        g.setColor(Color.BLACK);
        g.drawRect(x1, y1, x2, y2);
        g.setColor(Color.RED);
        g.fillRect(xb1, yb1, xb2,yb2);
        g.setColor(Color.BLACK);
        g.drawRect(xb1, yb1, xb2, yb2);

       // Desenha pizza
        g.setColor(Color.white);
        g.fillOval(0, 0, this.getWidth(),this.getHeight());
        g.setColor(Color.red);
        g.fillOval(a1, b1, a2,b2);
        g.setColor(Color.BLACK);
        g.drawOval(a1, b1, a2, b2);
        g.setColor(Color.RED);
        g.fillOval(ab1, bb1, ab2,bb2);
        g.setColor(Color.BLACK);
        g.drawOval(ab1, bb1, ab2, bb2);
     }

Alguem sabe como posso fazer para alterar a cor só do grafico maior pelo combobox?

Att.

Criado 18 de outubro de 2009
Respostas 0
Participantes 1