Merkwürdiger ChangeListener-Fehler

Hindi93

Aktives Mitglied
Hi,
ich bin gerade beim lernen der Swinglib und habe gerade ein Script aus meinem Buch abgetippt, doch aus irgendeinem Grund makierts mir hier ständig in Eclipse das Wort "ChangeListener" von der Zeile
"slider4.addChangeListener(new ChangeListener() {"
Doch ich hab keinen Plan was ich da falsch eingetippt haben könnte. Hier mal noch das ganze Script:
Java:
import javax.swing.*;
import java.awt.*;

public class Test {	
	public static void main(String[] args) {
		JFrame f = new JFrame();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setLayout(new GridLayout(4, 0, 0, 7));
		
		JSlider slider1 = new JSlider(0, 100, 50);
		f.add(slider1);
		
		JSlider slider2 = new JSlider(0, 100, 50);
	    slider2.setPaintTicks(true);
	    slider2.setMinorTickSpacing(5);
	    f.add(slider2);
	    
	    JSlider slider3 = new JSlider(0, 100, 50);
	    slider3.setPaintTicks(true);
	    slider3.setMajorTickSpacing(10);
	    f.add(slider3);
	    
	    JSlider slider4 = new JSlider(0, 100, 50);
	    slider4.setPaintTicks(true);
	    slider4.setMajorTickSpacing(10);
	    slider4.setMinorTickSpacing(2);
	    slider4.setPaintTrack(false);
	    slider4.addChangeListener(new ChangeListener() {
	    	@Override public void stateChanged(ChangedEvent e) {
	    		System.out.println(((JSlider) e.getSource()).getValue());
	    	}
	    });
	}
}


Ich hoffe ihr könnt mir da weiter helfen, weil das is nich mein einzigstes Listener-Problem...

mfg Hindi

EDIT:
Die Fehlermeldung lautet:
Code:
ChangeListener cannot be resolved to a type
 
Zuletzt bearbeitet:
Das liegt daran, dass der Compiler die Klasse ChangeListener in keinem der importierten Packages finden kann. ChangeListener ist ein Interface aus dem Package
Code:
javax.swing.event
.

Du gibst also die fehlenden Klassen qualifiziert an, bspw.:
Code:
javax.swing.event.ChangeListener
oder du importierst einfach zusätzlich noch das benötigte Package.
 
Ok, das hab ich jetzt gemacht, doch jetzt makerits mir die Zeile hier:
Code:
@Override public void stateChanged(ChangeEvent e) {
Und zwar davon den Teil:
Code:
stateChanged(ChangeEvent e)

Der andere Fehler is jetzt weg, aber da meint er jetzt es existiert keine Methode sateChanged die man überschreiben könne.
 
Das zeigt, dass du meinen obigen Post nicht ganz verstanden hast. ChangeEvent (nicht ChangedEvent :rtfm🙂 ist auch eine Klasse aus
Code:
javax.swing.event
.
Also muss diese auch dem Compiler bekannt gemacht werden.
 

Zurück
Oben