JLabel label = new JLabel();
if (flag == false) {
MouseMotionListener[] mm2 = sel.getMouseMotionListeners();
MouseListener[] ml2 = sel.getMouseListeners();
for (int y = 0; y < labels.size(); y++) {
label = (JLabel) labels.elementAt(y);
if (!(label.getName() .equals( sel.getName()))) {
for (int x = 0; x < ml2.length; x++) {
label.removeMouseMotionListener(mm2[x]);
label.removeMouseListener(ml2[x]);
}
}
}
} else {
for (int y = 0; y < labels.size(); y++) {
label = (JLabel) labels.elementAt(y);
if (label != sel) {
for (int x = 0; x < mm.length; x++) {
label.addMouseMotionListener(mm[x]);
label.addMouseListener(ml[x]);
}
}
}
}
Removendo e devolvendo mouselisteners
ola pessoal...
criei uma logica para remover e adicionar os mouselisteners de um vetor de labels...
seria algo assim: eu removeria os listeners de todos os labels, menos o do selecionado... quando o label for o selecionado ele pode ser arrastado...
e eu devolveria esses mouse listeners quando o usuario clicasse em um botao...
mas nao sei porque... nao esta funcionando corretamente...
coloquei uns "System.out", e parece q os labels estao recebendo os cliques normalmente... mas quando eu clico em outro label, a variavel selecionado nao recebe o label que eu criei... acho q ele continua sem o evento de click...
alguem pode me ajudar a resolver este problema?
obrigada
1 Resposta
Olha, não entendi nada do que vc quis fazer. Mas vou tentar…
Umas coisa: vc faz um looping numa lista e depois no MouseListeners, e remove os MouseListener e também os MouseMotion!! Tem q ter outro looping para remover o Motion!!..
Foi a unica falha que achei…
Isso em ambos os loopings…
Criado 25 de junho de 2008
Ultima resposta 27 de jun. de 2008
Respostas 1
Participantes 2