使用java的值可移动栏

我想创建一个带有值的栏。 如果我移动圆圈,那么该字段中的值应该更改。 我怎样才能做到这一点? 这是屏幕截图。 我怎样才能做到这一点?

类似的东西也可以。 请帮我解决一下这个。 先谢谢你 :)

在此处输入图像描述

SpinSlider可能是一个有用的例子。

附录:这是一个使用JSpinner.NumberEditor的合适格式字符串的示例。

附录:您可以通过覆盖paintTrack()来更改滑块的颜色,如下所示。

SpinSlider图像

 import java.awt.EventQueue; import java.awt.FlowLayout; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JSlider; import javax.swing.JSpinner; import javax.swing.SpinnerNumberModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; /** @see https://stackoverflow.com/questions/6067898 */ public class SpinSlider extends JPanel { public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { @Override public void run() { JFrame f = new JFrame("SpinSlider!"); f.add(new SpinSlider()); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.pack(); f.setVisible(true); } }); } public SpinSlider() { this.setLayout(new FlowLayout()); final JSpinner spinner = new JSpinner(); final JSlider slider = new JSlider(); slider.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { JSlider s = (JSlider) e.getSource(); spinner.setValue(s.getValue()); } }); this.add(slider); spinner.setModel(new SpinnerNumberModel(50, 0, 100, 1)); spinner.setEditor(new JSpinner.NumberEditor(spinner, "0'%'")); spinner.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { JSpinner s = (JSpinner) e.getSource(); slider.setValue((Integer) s.getValue()); } }); this.add(spinner); } } 

要在Java中创建带有值(滑块)的栏,可以使用JSlider类。 创建此类的实例时,可以指定所有参数,如min。 最多 价值,步长等

您可以将ChangeListener添加到滑块。 此Changelistener应实现stateChanged()方法,在此方法中,您可以根据滑块的位置更改文本框中显示的值。

 JSlider slider= new JSlider(JSlider.HORIZONTAL,0,100,50); //min value 0, max value 100, initial value 50 slider.addChangeListener(this) JTextFox text = new JTextFox("50"); //Some other code, adding the the slider, text box (and other stuff) to the application //... public void stateChanged(ChangeEvent e) { JSlider source = (JSlider)e.getSource(); int value = (int)source.getValue(); text.setText(Integer.toString(value)); } 

在Java Swing中,您可以使用JSlider (已经具有所需的模型和行为),然后自定义其UI