quero saber como fazer para desabilitar um JLabel, ou seja, quando eu clicar nele, não seja executada ação alguma.
usei o metodo setEnabled() e setDisabled(), mas não deu certo.
quero saber como fazer para desabilitar um JLabel, ou seja, quando eu clicar nele, não seja executada ação alguma.
usei o metodo setEnabled() e setDisabled(), mas não deu certo.
melhorando a pergunta, o negocio é o seguinte, quando eu clico no JLabel que tem uma figura quero q ocorra determinada ação, depois de derminadas vezes clicando nesse JLabel, quero que o evento de clicar no JLabel seja desabilitado. Alguém sabe como posso fazer isso.
[color=“blue”]
Você poderia criar uma classe que herda JLabel, e assim criar uma variavel do tipo int que determinaria o limite de clicadas que você poderá dar sobre ele. Além disto você deve criar um Listener padrão nesta nova Classe. Ao ultrapassar o limite de clicadas dado pela variável int, você “pularia” o código que trata os eventos através de um IF. Porém existe um método chamado “removeActionListener(ActionListener actionlistener)” que pode ser explorado. Boa sorte !
[/color]
para o meu problema só dar certo a segunda opcao. Eu tentei usar o método removeMouseListener(MouseListener ml) só q n está removendo.
o q está de errado com meu código.
private class Handler extends MouseAdapter implements Runnable{
private boolean b = true;
public void mouseReleased(MouseEvent me){
if(me.getSource() == label[0])
label[0].setIcon((Icon)fig.get(0));
else if(me.getSource() == label[1])
label[1].setIcon((Icon)fig.get(1));
else if(me.getSource() == label[2])
label[2].setIcon((Icon)fig.get(2));
else if(me.getSource() == label[3])
label[3].setIcon((Icon)fig.get(3));
else if(me.getSource() == label[4])
label[4].setIcon((Icon)fig.get(4));
else if(me.getSource() == label[5])
label[5].setIcon((Icon)fig.get(5));
else if(me.getSource() == label[6])
label[6].setIcon((Icon)fig.get(6));
else if(me.getSource() == label[7])
label[7].setIcon((Icon)fig.get(7));
else if(me.getSource() == label[8])
label[8].setIcon((Icon)fig.get(8));
else if(me.getSource() == label[9])
label[9].setIcon((Icon)fig.get(9));
else if(me.getSource() == label[10])
label[10].setIcon((Icon)fig.get(10));
else if(me.getSource() == label[11])
label[11].setIcon((Icon)fig.get(11));
else if(me.getSource() == label[12])
label[12].setIcon((Icon)fig.get(12));
else if(me.getSource() == label[13])
label[13].setIcon((Icon)fig.get(13));
else if(me.getSource() == label[14])
label[14].setIcon((Icon)fig.get(14));
else if(me.getSource() == label[15])
label[15].setIcon((Icon)fig.get(15));
else if(me.getSource() == label[16])
label[16].setIcon((Icon)fig.get(16));
else if(me.getSource() == label[17])
label[17].setIcon((Icon)fig.get(17));
else if(me.getSource() == label[18])
label[18].setIcon((Icon)fig.get(18));
else if(me.getSource() == label[19])
label[19].setIcon((Icon)fig.get(19));
else if(me.getSource() == label[20])
label[20].setIcon((Icon)fig.get(20));
else if(me.getSource() == label[21])
label[21].setIcon((Icon)fig.get(21));
else if(me.getSource() == label[22])
label[22].setIcon((Icon)fig.get(22));
else if(me.getSource() == label[23])
label[23].setIcon((Icon)fig.get(23));
else if(me.getSource() == label[24])
label[24].setIcon((Icon)fig.get(24));
lab.add((JLabel)me.getSource());
//System.out.println("quant = " + quant);
//System.out.println("b = " + b);
System.out.println("1 " + lab.size());
if(lab.size() == 2){
//b = false;
new Thread(this).start();
}
}
faltou o resto do código.
public void run(){
try{
synchronized(this){
Thread.sleep(1000);
JLabel label_0, label_1;
label_0 = (JLabel)lab.get(0);
label_1 = (JLabel)lab.get(1);
if(!label_0.getIcon().equals(label_1.getIcon())){
label_0.setIcon(branco);
label_1.setIcon(branco);
}
else{
label_0.removeMouseListener(new Handler());
label_1.removeMouseListener(new Handler());
System.out.println("heheheh 12222222222222");
}
lab.removeAll(lab);
System.out.println("2º " + lab.size());
}
}
catch(InterruptedException ie){}
}
}
Pelo que vi você criou novas instâncias de Handler …
label_0.removeMouseListener(new Handler());
label_1.removeMouseListener(new Handler());
… então na verdade você cria e logo em seguida apaga, o que não surtirá efeito algum sobre as JLabel’s. Em resumo você deve colocar no lugar das “new Handler()”, a referência que você usou para instanciar a classe “Handler”. Temos ainda que imaginar uma maneira de chamar o método “remove…” fora do próprio método de tratamento de eventos, pois não sei exatamente como é feita a remoção dos listener’s, e dependendo de como é, o código acima pode não rodar corretamente.
valeu alex, deu certo com o método removeMouseListener()