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