Olá. Preciso colocar uma imagem numa tela swing. Só que esta mesma imagem deve ter várias áreas clicáveis entende. No JSP, crio DIVs com posição absoluta e coloco onde desejo, preciso fazer o mesmo numa aplicação SWING agora.
Alguém tem alguma idéia de como fazer isso? Qual seria a melhor forma? Não teria como eu colocar alguns JPanel transparentes sobre essa figura, só para servirem como link por cima da imagem?
Não sei se me entenderam, mas o que quero fazer é como se eu fosse exibir um mapa no swing, e cada estado fosse clicável, apontando pra um lugar diferente…
Certo. É uma solução. E eu teria como colocar uma imagem por cima da outra? podendo especificar o X,Y da posição dessa imagem?
Obrigado
V
ViniGodoy
Poderia sim.
Se sobrescrever o paintComponent, você pode fazer praticamente o que quiser com a imagem. Sobreposição, rotação, etc…
Pesquise sobre BufferedImage e a classe Graphics2D.
O livro Killer Game Programming in Java tem um capítulo muito bom sobre manipulação de imagens. Você pode ler no site oficial do livro, acessado pelo link.
O método paintComponent(Graphics g) resolveu meus problemas.
só faço um g.drawImage(img,0,0,null). Isso seta a imagem de fundo pra mim. Agora as imagens por cima da figura, crio JLabels passando em seus construtores um ImageIcon. E com o método setBounds, especifico exatamente o X e Y que quero que se posicione, e também o width e height… E setando o setOpaque(false), o que é por padrao, o JLabel fica com fundo transparente. Exatamente o que eu precisava