我在 JavaFX 中有一个用于 slider 的工作代码,但每当 slider 发生任何变化时它都会触发,我希望它只在鼠标拖动事件被释放时触发变化。

代码如下:

sliderMarkerSize.valueProperty().addListener(new ChangeListener<Number>() { 
        public void changed(ObservableValue<? extends Number> ov, 
            Number old_val, Number new_val) { 
                markerSize = new_val.intValue(); 
                communalWeb(); 
            } 
 
    }); 

如何让它只在松开鼠标时改变我的图表?

请您参考如下方法:

使用 OnMouseReleased

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.control.Slider; 
import javafx.scene.layout.StackPane; 
import javafx.stage.Stage; 
 
/** 
 * 
 * @author blj0011 
 */ 
public class JavaFXApplication231 extends Application 
{ 
 
    @Override 
    public void start(Stage primaryStage) 
    { 
 
 
        Slider slider = new Slider(0, 100, 0); 
        slider.setOnMouseReleased(event -> { 
            System.out.println(slider.getValue()); 
        }); 
        StackPane root = new StackPane(slider); 
 
        Scene scene = new Scene(root, 300, 250); 
 
        primaryStage.setTitle("Hello World!"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
 
    /** 
     * @param args the command line arguments 
     */ 
    public static void main(String[] args) 
    { 
        launch(args); 
    } 
 
} 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!