我创建了一个 JSlider。我希望能够单击 slider 上的任意位置并将拇指移动到鼠标的位置并开始拖动(通常您必须单击拇指)。通过使用以下方法添加鼠标监听器,我可以将拇指移动到鼠标位置:
public void mousePressed(MouseEvent e) {
slider.setValue(((BasicSliderUI) slider.getUI()).valueForXPosition(e.getX()));
}
问题是,一旦我按下鼠标按钮,然后移动它,拇指就会保持在原位。有什么方法可以以编程方式启动拖动吗?
最佳答案
我能够通过调用 SliderUI 的 trackListener 的 mousePressed 事件来启动拖动。我创建了一个扩展 BasicSliderUI 的类,并具有一个带有事件的鼠标监听器:
public void mousePressed(MouseEvent e) {
slider.setValue(valueForXPosition(e.getX()));
trackListener.mousePressed(e);
}
关于java - 以编程方式开始拖动 JSlider Thumb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17075091/