0
Ich versuche, JSlider
setValue(int)
zu verwenden, um die Position des Reglers automatisch zum nächsten Tick zu verschieben, wenn ein Benutzer mit dem Ziehen fertig ist. Die Position ist richtig eingestellt, wenn der Benutzer klickt, aber nicht, wenn sie den Knopf ziehen. Wie repariere ich thix?Ändern Sie den Wert des Schiebereglers, nachdem der Regler gezogen wurde
/**
* Called when the slider is moved.
*
* @access public
* @param ChangeEvent
* @return void
*/
public void stateChanged(ChangeEvent e) {
JSlider source = (JSlider) e.getSource();
if (! source.getValueIsAdjusting()) {
//let's only allow users to increment by TIMER_SPACING
int fps = (int) source.getValue();
int temp = fps % TIMER_SPACING;
if (temp > TIMER_SPACING/2) {
fps += TIMER_SPACING - temp;
} else {
fps -= temp;
}
source.setValue(fps);
if (fps == 0) {
timer.stop();
} else {
if (! timer.isRunning()) {
timer.start();
}
timer.setDelay(1000/fps);
}
}
}
haben Sie einen Equalizer Codierung ??? – mKorbel
Nein, aber ähnliche Funktionalität. – Wex
Warum nicht einfach [Häkchen ankreuzen] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JSlider.html#setSnapToTicks%28boolean%29)? –