| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2006 14:17:33
|
antonioni.rocha
JavaGuru
![[Avatar]](/images/avatar/042551811c82ef07fbe3289501b5ab28.png)
Membro desde: 07/05/2006 17:09:05
Mensagens: 246
Offline
|
Tenho um JPanel onde uso a classe Graphics para desenhar trapézios, retângulos e várias outras formas (como polígonos, com a classe Polygon) num JPanel. Por exemplo, se eu desenho um retângulo verde qualquer neste JPanel, como posso tratar eventos quando o usuário clicar somente nesta área verde limitada? (Caso o usuário clique fora desta área, no JPanel, nada deve acontecer).
Estou precisando desenhar várias formas num mesmo JPanel (trapézios, ovais, retângulos, etc), e gostaria de tratar eventos somente nestas áreas.
Há como?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2006 15:44:48
|
hvidal
Debugger
![[Avatar]](/images/avatar/65a54865de989d0a6a60a8ad5b07e071.png)
Membro desde: 03/09/2006 18:42:59
Mensagens: 52
Localização: Rio de Janeiro
Offline
|
Oi Antonioni,
Talvez uma forma rápida e fácil de fazer isso seja manter uma imagem em memória com o desenho do seu painel, permitindo que a gente possa pegar a cor de um determinado ponto qualquer e, portanto, descobrir se ali existe um dos desenhos.
O problema é que você vai ter que manter o tamanho da imagem igual ao tamanho do painel. Assim, quando o usuário redimensionar a janela, você terá que recriar a imagem. Eu não implementei isso no código acima.
Vale lembrar que essa solução também gastará mais memória e processamento.
Outra solução seria criar funções que avaliam se um determinado ponto está sobre uma das formas. Nesse caso, você precisaria manter objetos das formas em uma lista e percorrê-los na hora de pintar e na hora de procurar. Esse é o princípio usado pelas ferramentas de diagramação.
Grande abraço,
Hugo.
|
_______________________________________
Hugo Vidal Teixeira - M.Sc. COPPE/UFRJ
Component-Based Software Engineering
GUI Design & Programming
http://www.componenthouse.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/10/2006 23:59:11
|
antonioni.rocha
JavaGuru
![[Avatar]](/images/avatar/042551811c82ef07fbe3289501b5ab28.png)
Membro desde: 07/05/2006 17:09:05
Mensagens: 246
Offline
|
Olá, camarada hvidal,
deu certo, usei a segunda solução (conjunto de Polygons) .
Agradeço...!
|
| Nome do arquivo |
imagem.GIF |
Download
|
| Descrição |
Polygons com eventos |
| Tamanho |
29 Kbytes
|
| Baixado: |
86 vez(es) |
|
|
|
 |
|
|
|
|