如标题所述,我制作了一个简单的 JSlider,并成功设置了最小值和最大值以及较小的刻度间距,然后将“setSnapToTicks”设置为 true。那部分没问题,当用户释放鼠标时,我的旋钮会移动到最近的刻度,这再简单不过了。
但是现在我想在不释放鼠标的情况下获得这种效果,旋钮必须逐个滴答地移动而不注意这些滴答声之间的值,我希望它只在滴答声值上“跳跃”。我刚刚进行了很多搜索,但没有找到答案,我只是听说“setExtent”,它应该设置我正在搜索的那种步骤,但经过一些调试后它没有工作。这是我对 JSlider 的简单声明:
sliderFlightLevel = new JSlider();
sliderFlightLevel.setValue(100);
sliderFlightLevel.setMinorTickSpacing(100);
sliderFlightLevel.setMinimum(100);
sliderFlightLevel.setMaximum(50000);
GridBagConstraints gbcSliderFlightLevel = new GridBagConstraints();
gbcSliderFlightLevel.gridwidth = 3;
gbcSliderFlightLevel.insets = new Insets(0, 10, 5, 10);
gbcSliderFlightLevel.fill = GridBagConstraints.HORIZONTAL;
gbcSliderFlightLevel.gridx = 0;
gbcSliderFlightLevel.gridy = 1;
mainPanel.add(sliderFlightLevel, gbcSliderFlightLevel);
感谢阅读,希望能得到帮助:)