galera… seguinte… mais leigo em java que eu aqui acho que não tem heheheeh to com um problema que é o seguinte… quero carregar uma imagem em um frame e desenhar por cima dela… tipo… depois da imagem ja carregada quero poder desenhar uma reta de tal ponto(x,y) até outro (x,y) só estou conseguindo fazer uma coisa ou outra. aqui vai o código se alguem puder me ajudar eu agradeço desde já.
[code] label = new JLabel();
Container con = getContentPane();
con.add(label, “Center”);
String name = "C:/mapafinal.jpg";
label.setIcon(new ImageIcon(name));
[/code]
esse ai de cima ta carregando a imagem
o de baixo é a classe usada para desenhar
class PainelDesenhaFormas extends JPanel //classe que desenha rotas
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.blue);
for(int x=0; x<400;x++)
{
g.drawRect(x, 10, 1, 1);
}
for(int x=100; x<500;x++)
{
g.drawRect(100, x, 2, 2);
}
g.drawRoundRect(100, 10, 80, 30, 15, 15);
g.setColor(Color.red);
for (int i = 10; i > 0 ; i--)
g.drawOval(100, 100, i, i);
}
}
to usando esse codigo para desenhar as formas
getContentPane().add(new PainelDesenhaFormas());
o négocio é que dependendo de como faço isso ou carrega imagem ou desenha. não tem como desenhar sobre a imagem ja carregada.???
[code]
class PainelDesenhaFormas extends JPanel //classe que desenha rotas
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
// desenha a imagem no Graphics
g.drawImage(...);
g.setColor(Color.blue);
for(int x=0; x<400;x++)
{
g.drawRect(x, 10, 1, 1);
}
for(int x=100; x<500;x++)
{
g.drawRect(100, x, 2, 2);
}
g.drawRoundRect(100, 10, 80, 30, 15, 15);
g.setColor(Color.red);
for (int i = 10; i > 0 ; i--)
g.drawOval(100, 100, i, i);
}
} [/code]
Aí você vai ter que passar a imagem já carregada para o método drawImage, mas dá uma olhada na documentação da API que você vai poder carregar a imagem para um ImageIcon, como já está fazendo, e, a partir do ícone, pegar a Imagem para usar nesse método.