MouseListener deaktivieren

dsNDesign

Erfahrenes Mitglied
Hei,
ich habe folgenden Programmcode:

Java:
MouseListener a = new MouseAdapter() {
	public void mouseClicked (MouseEvent m) {
		Object o = m.getSource();
		if(o instanceof JLabel){
			JLabel l = (JLabel)o;
			setColor(l.getIcon(), felder, posFeld);
			if(posFeld[0] < 0) {
				testButton.setEnabled(true);
			}
		}
	}
};

JLabel [] allFarben = {rotB, blauB, gelbB, gruenB};

for(int i = 0; i < farben; i++) {
	farbenPanel.add(allFarben[i]);
	allFarben[i].addMouseListener(a);
}

farbenPanel.add(testButton);
mainPanel.add(farbenPanel, BorderLayout.PAGE_END);

testButton.addActionListener(new ActionListener() {
	public void actionPerformed (ActionEvent e) {
		posFeld[1]++;
		posFeld[0] = maxPos-1;
		testButton.setEnabled(false);
	}
});

Der MouseListener wird jedes mal aufgerufen, wenn ich eines der Labels von "allFarben" anklicke. In der dabei aufgerufenen Funktion "setColor" wird dann noch jedesmal "posFeld[0]" um 1 verringert.
Dadurch wird dieser Wert ja irgendwann kleiner 0. Wenn dies so ist, wird der Button "testButton" aktiviert.
Sobald ich dann diesen drücke, wird "posFeld" wieder zurückgesetzt und der Button wieder deaktiviert.

Nun zu meinem Problem:
Ich hätte gerne, dass zwischen dem aktivieren des Buttons und dem wieder deaktivieren die Labels von "allFarben" nicht anklickbar sind. Also dass in dieser Zeit der MouseListener nicht arbeitet.

Wie ist sowas möglich?

Gruß
 
Eine einfache IfAbfrage am Anfang des MouseListeneres sollte abhilfe schaffen (return; wenn posFeld[0] < 0 ist ).
 
Zurück