JSlider problem

  • Hi, ich habe 3 JSlider implementiert. der wert aller 3 slider zusammen darf 100 nicht übersteigen. ich überprüfe das alles mit einem changeListener und es passt auch soweit. wenn ich einen wert in einem der 3 slider anklicke und der gemeinsame wert aller 3 würde 100 übersteigen, wird der knob mit slider.setValue() auf den höchsten mögichen wert zurückgesetzt. wenn ich allerdings den knob dragge und auf einer unzulässigen position wieder absetze, wird der wert via setValue zwar zurückgesetzt, der knob bleibt aber auf der unzulässigen position stehen. hat irgendjemand eine ahnung an was das liegen könnte?! mfg

  • für jeden slider habe ich einen changeListener. die methode checkSlider() schaut einfach ob der gemeinsame wert aller 3 slider > 100 ist und gibt dann true zurück, sonst false. "melodicvalue" und "rhyhtmicvalue" sind die werte der anderen beiden slider.

    mfg

  • Habe da etwas recherchiert, und eine Lösung scheint die Verwendung eines BoundesRangeModels zu sein. Folgender Code aktualisiert den JSlider, sobald er den Fokus verliert:

    Habe jetzt aber nicht probiert, ob es ursprünglich mit dem ChangeListener den selben Effekt gehabt hätte. Vielleicht wäre eine Lösung, die Komponente dazu zu bringen, dass sie sich neu zeichnet mit dem neuen Wert, wie sie es macht, wenn sie den Fokus verliert. Klingt aber nicht zu elegant .. aber das BoundedRangeModel scheint die richtige Richtung vorzugeben.

    Kann da jetzt nicht weiß Gott wieviel Zeit investieren .. aber viel Erfolg noch .. und wenn du eine Lösugn findest, dann poste sie bitte.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!