Java 更改JSlider的单位移动

Java 更改JSlider的单位移动,java,swing,user-interface,jslider,Java,Swing,User Interface,Jslider,我想这是一个非常愚蠢的问题,但我想不出解决方案/如何向谷歌提出这个问题。基本上,我希望每次用户点击我的JSlider时,它每X个单位改变一次,而不是1个单位。我该怎么做呢?我在我的一个应用程序中就是这么做的。。。假设它是setMinorTickSpacing()和setMajorTickSpacing(): 这就是我在我的一个应用程序中所做的。。。假设它是setMinorTickSpacing()和setMajorTickSpacing(): 如另一个答案所述,您需要 将小刻度间距设置为希望其移

我想这是一个非常愚蠢的问题,但我想不出解决方案/如何向谷歌提出这个问题。基本上,我希望每次用户点击我的JSlider时,它每X个单位改变一次,而不是1个单位。我该怎么做呢?

我在我的一个应用程序中就是这么做的。。。假设它是
setMinorTickSpacing()
setMajorTickSpacing()


这就是我在我的一个应用程序中所做的。。。假设它是
setMinorTickSpacing()
setMajorTickSpacing()


如另一个答案所述,您需要

  • 将小刻度间距设置为希望其移动的大小
  • 设置
    setSnapToTicks(true)
    ,使滑块在默认情况下以较小的刻度增量移动
  • e、 g

    final JSlider slider = new JSlider(0, 100, 50);
    slider.setMinorTickSpacing(5);
    slider.setMajorTickSpacing(20);
    slider.setPaintTicks(true);
    slider.setPaintLabels(true);
    slider.setSnapToTicks(true);
    
    slider.addChangeListener(ce -> {
        System.out.println("value: " + slider.getValue());
    });
    
    JOptionPane.showMessageDialog(null, slider);
    

    如另一个答案所述,您需要

  • 将小刻度间距设置为希望其移动的大小
  • 设置
    setSnapToTicks(true)
    ,使滑块在默认情况下以较小的刻度增量移动
  • e、 g

    final JSlider slider = new JSlider(0, 100, 50);
    slider.setMinorTickSpacing(5);
    slider.setMajorTickSpacing(20);
    slider.setPaintTicks(true);
    slider.setPaintLabels(true);
    slider.setSnapToTicks(true);
    
    slider.addChangeListener(ce -> {
        System.out.println("value: " + slider.getValue());
    });
    
    JOptionPane.showMessageDialog(null, slider);
    

    关键实际上是这一行:
    jSlider1.setSnapToTicks(true)强制按小刻度度移动。1+终于!我的最大值、最小值和刻度间距与你相似,但snaptoticks是错误的。谢谢@学习大师:如果这个答案有帮助,那就考虑接受Stackoverflow,6分钟后,让我来做!关键实际上是这一行:
    jSlider1.setSnapToTicks(true)强制按小刻度度移动。1+终于!我的最大值、最小值和刻度间距与你相似,但snaptoticks是错误的。谢谢@学习大师:如果这个答案有帮助,那就考虑接受Stackoverflow,6分钟后,让我来做!