Ol�s... Estou com o seguinte problema... Tenho um Canvas dentro de um
ScrollPane...
Qdo eu carrego uma imagem pela primeira vez, tudo funciona perfeitamente...
e as barras de rolagem aparecem se necessario... Mas qdo  eu carrego uma
segunda imagem, as barras nao se ajustam ao seu tamanho...
j� tentei o doLayout() e o validate() para o scrollpane mas nao obtive
sucesso....

Algu�m pode me ajudar....
Obrigad.a....
Ligia...
------------------------------------------

import java.awt.*;

public class CadSimbolos extends java.awt.Frame {

    public CadSimbolos() {
        initComponents ();
        imgSimb = new ImgSimbolo(scrollFig,50,50);
        scrollFig.add(imgSimb);
        pack ();
    }

    private void initComponents() {
        scrollFig = new java.awt.ScrollPane();
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        }
        );


        add(scrollFig, java.awt.BorderLayout.CENTER);

    }

  private void btFiguraActionPerformed(java.awt.event.ActionEvent evt) {
        FileDialog fd = new FileDialog(this,"Abrir",FileDialog.LOAD);
        fd.show();
        if (fd.getFile()!= null)

            Image i =
Toolkit.getDefaultToolkit().getImage(fd.getDirectory()+fd.getFile());
            imgSimb.setImage(i);
            scrollFig.validate(); file://it doesn't work
     file://scrollFig.doLayout(); file://it doesn't work too
        }

  }

    private void exitForm(java.awt.event.WindowEvent evt) {
        dispose();
    }

    private java.awt.ScrollPane scrollFig;
    ImgSimbolo imgSimb;
}


class ImgSimbolo extends Canvas {
    Container pappy;
    Image image;
    boolean trueSizeKnown = false;
    Dimension minSize;
    int w, h;

    public ImgSimbolo(Container parent, int initialWidth, int initialHeight)
{
 pappy = parent;

 w = initialWidth;
 h = initialHeight;

 minSize = new Dimension(w,h);
    }

    public Dimension getPreferredSize() {
  return getMinimumSize();
    }

    public synchronized Dimension getMinimumSize() {
 return minSize;
    }

    public void paint (Graphics g) {
 if (image != null) {
     if (!trueSizeKnown) {
         int imageWidth = image.getWidth(this);
         int imageHeight = image.getHeight(this);

         if ((imageWidth > 0) && (imageHeight > 0)) {
      trueSizeKnown = true;

      file://Ooh... component-initiated resizing.
      w = imageWidth;
      h = imageHeight;
      minSize = new Dimension(w,h);
      setSize(w, h);
      pappy.doLayout();
      pappy.repaint();
         }
     }
        g.drawImage(image, 0, 0, this);
 }
    }

    public void setImage(Image i) {
        this.image = i;
        repaint();
    }
}



------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP 
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a