1

我创建了一个 JSlider。我希望能够单击滑块上的任意位置并使拇指移动到鼠标的位置并开始拖动(通常您必须单击拇指)。通过使用以下方法添加鼠标侦听器,我能够让拇指移动到鼠标位置:

public void mousePressed(MouseEvent e) {
    slider.setValue(((BasicSliderUI) slider.getUI()).valueForXPosition(e.getX()));
}

问题是,一旦我按下鼠标按钮,然后移动它,拇指就会保持原位。有没有办法以编程方式启动拖动?

4

1 回答 1

1

我能够通过调用 SliderUI 的 trackListener 的 mousePressed 事件来启动拖动。我创建了一个扩展 BasicSliderUI 的类,并有一个带有事件的鼠标侦听器:

public void mousePressed(MouseEvent e) {
    slider.setValue(valueForXPosition(e.getX()));
    trackListener.mousePressed(e);
}
于 2013-06-21T23:06:16.303 回答