| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/06/2010 21:11:26
|
gqferreira
Virtual Machine Man
![[Avatar]](/images/avatar/bcb344196d20becbb66f098d91f83abb.png)
Membro desde: 29/11/2008 17:38:10
Mensagens: 572
Localização: Indaiatuba/SP
Offline
|
Boa noite galera!
Alguém ja fez alguma "firula" usando canvas e depois colocou em um JPanel?
Fiz um relogio digital com aparencia de display de calculadora usando canvas. Agora preciso colocar em um JPanel, ja rodei a net toda e nada.... so consigo colocar dentro de um JFrame ou JDialog, containers do tipo janela, mas preciso colocar dentro de um jpanel.
Alguém?
Vlw gente!
This message was edited 1 time. Last update was at 28/06/2010 19:27:52
|
"Se eu tiver uma maçã e você também tiver uma maçã, e trocarmos de maçãs, cada um ficará com uma maçã. Se eu tiver uma ideia e você também tiver uma ideia, e trocarmos ideias, cada um ficará com duas ideias."
George Bernard Shaw
Gustavo Quirino Ferreira |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/06/2010 21:34:44
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Você não deve misturar AWT e Swing. Sobrescreva o método paintComponent do JPanel, ou do JComponent, e transfira o código do relógio para lá.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/06/2010 22:39:06
|
gqferreira
Virtual Machine Man
![[Avatar]](/images/avatar/bcb344196d20becbb66f098d91f83abb.png)
Membro desde: 29/11/2008 17:38:10
Mensagens: 572
Localização: Indaiatuba/SP
Offline
|
Ow... vlw vini, como sempre, vc me ajudando... ^^
Aproveitando o embalo, porque nao se deve misturar awt com swing? Apenas pela organizacao no quesito "ser puramente uma api só" ou algo relacionado a performace?
|
"Se eu tiver uma maçã e você também tiver uma maçã, e trocarmos de maçãs, cada um ficará com uma maçã. Se eu tiver uma ideia e você também tiver uma ideia, e trocarmos ideias, cada um ficará com duas ideias."
George Bernard Shaw
Gustavo Quirino Ferreira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2010 08:59:48
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Não, o problema é mais embaixo. Está relacionado a forma que os componentes trabalham. A AWT tenta fazer janelas usando recursos do SO. Quando você desenha um botão, a AWT usa a API do Windows para desenhar um botão. O mesmo vale para qualquer outro componente. Isso é chamado de componente "heavy weight" (pesado). O Swing não trabalha assim. Ele cria um único canvas, acelerado por hardware, e após isso, faz ele mesmo o desenho usando java 2D. Esse desenho é feito usando alguma biblioteca de pintura acelerada, como OpenGL ou, no caso do Windows, DirectX. No Swing, quando um botão é desenhado, ele é efetivamente pintado sobre o painel, não há a criação de componentes do Windows adicionais. Por isso, ele também consome menos recursos do SO, e é chamado de "light weight" (leve). Quando vc mistura as duas coisas ocorrem alguns efeitos indesejados: 1. Todos os componentes da AWT ficam SOBRE os componentes do Swing. Isso pq o botão é um componente da GDI, que está sobre o canvas, e os componentes do Swing são a "pintura" desse mesmo canvas; 2. Eventos podem se perder. A captura dos eventos dos componentes da AWT não é propagada para os componentes Swing; 3. Não é possível usar componentes como o JScrollPane sobre componentes da AWT. 4. Layout managers também não funcionam como deveriam. Esse artigo explica em detalhes essas situações: http://java.sun.com/j2se/1.3/docs/guide/awt/designspec/lightweights.html Para pintar no Swing, substitua a classe Canvas pela classe JComponent. Se precisar de um componente que suporte outros em cima dele, faça um filho de JPanel. E lembre-se que no caso do Swing o método que deve ser sobrescrito para pintura é o paintComponent, não o método paint.
This message was edited 2 times. Last update was at 28/06/2010 09:00:45
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2010 09:59:40
|
gqferreira
Virtual Machine Man
![[Avatar]](/images/avatar/bcb344196d20becbb66f098d91f83abb.png)
Membro desde: 29/11/2008 17:38:10
Mensagens: 572
Localização: Indaiatuba/SP
Offline
|
Bacana vini... entendi bem e ja consegui fazer meus "brinquedinhos" em canvas funcionarem... ^^
A proposito, vc lessiona? Sabe explicar com tanta clareza...
Vlw vini, um abraco!
|
"Se eu tiver uma maçã e você também tiver uma maçã, e trocarmos de maçãs, cada um ficará com uma maçã. Se eu tiver uma ideia e você também tiver uma ideia, e trocarmos ideias, cada um ficará com duas ideias."
George Bernard Shaw
Gustavo Quirino Ferreira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2010 11:40:23
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
gqferreira wrote:Bacana vini... entendi bem e ja consegui fazer meus "brinquedinhos" em canvas funcionarem... ^^
A proposito, vc lessiona? Sabe explicar com tanta clareza...
Sim, sou professor da pós-graduação em jogos digitais da PUC/PR.
E do curso de Superior de Tecnologia em Jogos da PUC também.
Mas em nenhum deles dou aula de Java.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
|
|