Dies ist Teil meines Codes und es funktioniert nicht, weil es immer sagt, dass es das Symbol in meinem ActionListener
nicht finden kann. Ich weiß nicht, wie ich es zum Laufen bringen soll.Timer und JSlider mit Bildern
Also im Grunde, was ich versuche die Schieber Länder zu tun ist, um die Bilder von 1-8.png Zuge zu machen, je nachdem, wo und IDK, wie:
private static JLabel value;
private static ImageIcon image;
private static Timer timer;
private static final int delay = 2000;
private static int newDelay;
private static int i = 1;
timer = new Timer(delay, new ActionListener() {
public void actionPerformed(ActionEvent e) {
// makes the image at i appear and then goes to 2 and so on until i i = 8 and will return a 1 after. Will keep on doing so
value.setIcon(new ImageIcon(i + ".png"));
i++;
if(i == 8) {
i = 1;
}
}
});
timer.start();
}
private static class SliderChange implements ChangeListener {
public void stateChanged(ChangeEvent event) {
JSlider source = (JSlider) event.getSource();
// while it is adjusting timer stops and gets the value of where the slider hits and the newDelay will be the new timer time. (So if they drag slider to 6, delay(which is 2000) will be divided by 6 to get new time
if (!source.getValueIsAdjusting()) {
timer.stop();
value.setIcon(new ImageIcon(i + ".png"));
newDelay = (delay/(int)source.getValue());
timer = new Timer(newDelay, new Actionlistener());
timer.start();
}
}
}
Aber das funktioniert nicht. Wie kann ich es reparieren?
Es weist auf diese Linie sagen, es ist ein Fehler:
timer = new Timer(newDelay, new Actionlistener());
ist verwirrend Nicht sicher, ob Sie jedes Mal einen neuen "Timer" erstellen müssen, vielleicht den aktuellen Timer stoppen und einfach die Verzögerung ändern und neu starten. Das Problem ist 'new ActionListener())' versucht, eine Instanz einer 'Schnittstelle' zu erzeugen, ohne die Anforderungen der besagten' Schnittstelle' zu implementieren – MadProgrammer