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