Quando coloco o JFrame com background transparente, na hora de arrastar uma JLabel, ele arrasta o form junto.
Se puderem me ajudar…
Quando coloco o JFrame com background transparente, na hora de arrastar uma JLabel, ele arrasta o form junto.
Se puderem me ajudar…
Poderia ser mais específico?
Está fazendo na mão?
Poderia postar algum código pra eu entender o problema?
Olha, eu to fazendo um jogo. Se for postar o código, vai ficar mto grande… São 2000 linhas de código, pq tem mto if/else.
O objetivo do jogo é vestir o personagem de acordo com as situações do cotidiano. Vc deve arrastar a roupa até o personagem, e, quando ela entra em contato com ele,
muda o gráfico do personagem, de modo a vestí-lo com a roupa arrastada.
Tenho um código que deixa o JFrame transparente, mas quando isso acontece, o JLabel das roupas, ao ser arrastado, carrega consigo todo o JFrame.
Se vc quiser msm ver o código, eu posto.
Além de deixar o JFrame transparente, você também deixa ele Undecorated ?
Posso estar falando besteira, mas pelo que me parece, quando você deixa o JFrame, não apenas transparente, mas completamente invisível, e também sem decoração, mostrando apenas seus elementos, acontece que a janela assume a forma do que estiver visível. Por exemplo, você insere a imagem de uma bola na JLabel e deixa o frame transparente e sem decoração, então a janela assume o formato da imagem, no caso, uma bola.
Sendo assim, você não está apenas arrastando um elemento dentro da sua janela, está arrastando ela completamente.
Não sei se isso ajuda, mas é minha opinião de iniciante em java.
Melhor, você poderia postar apenas a parte do código que arrasta as JLabels?
Esta é a classe responsável pela movimentação das JLabels.
Como eu seto esses objetos em outra camada do frame e seto o frame como opaque ?
[code]class Mover extends MouseInputAdapter{
private int xSel,ySel;
private int inx,iny;
public void mousePressed(MouseEvent evento){
inx=camisa.getX();
iny=camisa.getY();
}
public void mouseRelease(MouseEvent evento){
camisa.setLocation(inx,iny);
}
public void mouseDragged(MouseEvent evento){
int xSel,ySel;
Object oba = evento.getSource();
xSel=((Component)oba).getLocation().x;
ySel=((Component)oba).getLocation().y;
((Component)oba).setLocation((evento.getX() + xSel) - (((Component)oba).getWidth()/2) , (evento.getY() + ySel)-(((Component)oba).getHeight()/2));
xSel = evento.getX();
ySel = evento.getY();
}
public void mouseEntered(MouseEvent evento){}
public void mouseMoved(MouseEvent evento){
int mX,mY;
mX = (int) evento.getPoint().getX();
mY = (int) evento.getPoint().getY();
}
public void mouseClicked(MouseEvent evento) {
if(evento.getSource()==pilha2){
calcao.setVisible(true);
}
}
public void mouseExited(MouseEvent evento){}
}
//fim da classe mover[/code]