| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/05/2004 12:38:51
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
Oi gente, estou com um problema com um JPanel...
Tenho uma serie de objetos a serem desenhados e coloquei o codigo para fazer isso no paintComponent desse JPanel.
Acontece que quando o objeto é desenhado pela primeira vez funciona. Ao arrastar a janela funciona. Ao dar ALT-TAB e voltar nao funciona.
Ao dar ALT-TAB o método paintComponent é chamado, os objetos são desenhados mas a tela fica vazia.... alguma sugestao?
Parte do codigo segue...
Guilherme Silveira
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/05/2004 17:25:32
|
cariocathi
JavaEvangelist
![[Avatar]](/images/avatar/5d616dd38211ebb5d6ec52986674b6e4.jpg)
Membro desde: 30/04/2003 15:03:47
Mensagens: 352
Localização: Rio de Janeiro
Offline
|
não seria pq qnd vc arrasta ele executa método repaint() ????
|
GUJ addicted |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/05/2004 17:51:49
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
e qdo eu dou ALT+TAB ele nao chama o repaint? o q ele chama qdo eu dou ALT+TAB?
e como fazer para repintar quando ele voltar com o ALT+TAB?
vou tentar colocar um window listener com onFocus = repaint.... sera isso?
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/05/2004 18:19:19
|
cariocathi
JavaEvangelist
![[Avatar]](/images/avatar/5d616dd38211ebb5d6ec52986674b6e4.jpg)
Membro desde: 30/04/2003 15:03:47
Mensagens: 352
Localização: Rio de Janeiro
Offline
|
faz algum tempo q não mexo com swing, mas ACHO q o paintComponent é executado uma vez e depois ele só chama o repaint() qnd for necessário redesenhar a janela...
não encare como verdade absoluta pois como faz algum tempo q não brinco com swing, posso estar enganado...
|
GUJ addicted |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/05/2004 07:19:43
|
dukejeffrie
Virtual Machine Man
![[Avatar]](/images/avatar/c74d97b01eae257e44aa9d5bade97baf.png)
Membro desde: 21/08/2002 03:53:28
Mensagens: 661
Offline
|
Cara, não é isso...
pq vc não adiciona os seus shapes como componentes filhos?
Tem umas propriedades do JPanel que vc tem que prestar atenção:
1. size(Dimension): um repaint() só atualiza a área visível do componente. Mas da primeira vez, ele pinta de qq jeito. Se vc desenhou pra fora do tamando do componente da primeira vez, ele pinta, e vc vê o resultado.
2. opaque(boolean) dos filhos: a área visível é o tamanho do componente menos tudo o que está em cima dele e é opaco. Se vc tem filhos opacos, o Swing só desenha os filhos, e pode estar pulando o seu JPanel.
3. tamanho do pai: muitos componentes têm um viewport separado do size, é o caso do JScrollPane por exemplo, a AWT só redesenha o pedaço que está visível. Dependendo do layout que o pai do seu JPanel tem, vc pode não estar recebendo a área inteira.
Outra coisa que vc pode fazer é não pintar o fundo na mão, setar o background pra uma cor nada a ver (eu gosto de Color.CYAN e Color.YELLOW) quando constrói o JPanel e chamar super.paintComponent(g). Assim vc vê o que é que ele tá pintando de verdade...
[]s
|
Brevity is the soul of wit |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/05/2004 17:57:52
|
dncosta
Thread.start()
Membro desde: 06/05/2004 16:41:58
Mensagens: 31
Localização: São Paulo
Offline
|
Vc já tentou colocar o seu código dentro do método paint ao invés do paintComponent? Eu já fiz isso algumas vezes e funcionou direito.
Espero ter ajudado .. caso já não de certo me avise para eu ficar sabendo!
[]s
|
|
|
 |
|
|