simples: para definir o tamanho do Panel (aliás, se tu vai sobrecarregar o
paint e também o método que retorna as dimensões, usa um componente ao invés
de um panel...):

/**
* Componente com tamanho conhecido. Usa estendido a componente por ser
* mais leve. Não faz sentido usar Panel, que é um container, para definir
* um componente que nunca terá função de container.. (lembra do KISS?)
* @author Felipe Gaúcho
* @version cortesia.soujava
*/
public class TeuComponente extends Component
{
        private Image imagem = null;
        private Dimension dimensoes = null;

        TeuComponente(Imagem imagem)
        {
                this.imagem = imagem;
                dimensoes = new Dimension(imagem.getWidth(this), 
imagem.getHeight(this));
        }

        /** Aqui é contigo.. */
        public void paint(Graphics g)
        {
                g.drawImage(imagem, 0, 0, getWidth(), getHeight(), this);
        }

        /**
        * Método que retorna a dimensão do componente
        * sobrecarga do método homônimo da classe Component
        */
        public Dimension getPreferredSize()
        {
                // Pode usar esse método para criar outras gambiarras,
                // tipo, ajustar na mão as dimensões do teu componente...
                // usando, por exemplo, o setSize(w, h)...
                return dimensoes;
        }
}

No teu caso, talves o ideal fosse até extender logo a ScrollPane e tar o
componente de desenho encapsulado dentro desse componente... mas aí tem que
conhecer o projeto pra decidir..

Boa sorte,

        Felipe Gaúcho

-----Mensagem original-----
De: Antonio Techio [mailto:[EMAIL PROTECTED]]
Enviada em: quarta-feira, 8 de maio de 2002 14:24
Para: [EMAIL PROTECTED]
Assunto: [java-list] Problema p/ experiente...


Lista é o seguinte:

Nós já sabemos que é barbada colocar um ScrollPane num componente qualquer
de uma janela.
Exemplo:

*****************************************
JTextArea jta = new JTextArea(10);
JScrollPane jcp = new JScrollPane(jta);
*****************************************

O Código acima adiciona um ScrollPane no TextArea.

O meu problema é o seguinte:
Eu tenho a seguinte hieraquia:

Desenho ----> Panel ---> ScrollPane ---->Applet.

Ou seja, eu tenho um desenho dentro de um Panel, o Panel está dentro de
um ScrollPane e este último está dentro do Container da
Applet. O desenho é feito pelo método

public void paint(Graphics g){
   g.setColor(Color.red);
   g.fillRect(25,25,500,200);
}

Problema: (Estou mandando o código fonte zipado.)

Se o desenho for maior que aréa de visualização que eu defini para Applet
(width, heidth) ele deveria criar um ScrollPane para
poder visualizar toda a imagem que foi desenha nesse Panel. (Se
redimensionarmos
a janela, veremos toda a imagem);
Mas isso não ocorre, porque o não temos como definir o tamanho de um Panel,
como definimos o tamanho de um TextArea, por
exemplo. O ScrollPane não consegue identificar o tamanho que a imagem ocupa
no Panel.

Alguém saberia como resolver esse problema? Ou pelo menos dar umas dicas.

Obrigado,
Antônio.


Atenciosamente,                               Antônio Techio
                           *******************************************
Advanced DataBase - Analista de Sistemas www.advanceddb.com.br
                      Porto Alegre - RS - Brasil


________________________________________
A busca mais veloz e precisa da internet. Acesse agora:
http://www.zoom.com.br.




------------------------------ 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a