Desabilitar JLabel

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()