这个简单的例子向您展示了如何使用JSlider组件。JSlider组件旨在让用户轻松地输入一个由最小值和最大值限定的数值。
创建JSlider时,需要设置几个属性。 这些包括设置setMinorTickSpacing(),setMajorTickSpacing(),setPaintTicks()和setPaintLabels()。 这些方法设置次要刻度间距,主要刻度间距,显示刻度和刻度标签。
为了从JSlider获取选定的值,我们需要实现在ChangeListener接口中定义的stateChanged()方法,然后通过调用addChangeListener()方法将侦听器传递给JSlider。
package org.nhooo.example.swing; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; public class JSliderDemo extends JPanel implements ChangeListener { private JTextField field; public JSliderDemo() { initializeUI(); } private void initializeUI() { setLayout(new BorderLayout()); setPreferredSize(new Dimension(500, 200)); // 用水平创建一个JSlider实例 //方向。将0定义为最小值,然后 //最大值为50。设定初始值 // 至10 JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 50, 10); slider.setPaintTicks(true); slider.setPaintLabels(true); slider.setMinorTickSpacing(1); slider.setMajorTickSpacing(10); slider.addChangeListener(this); JLabel label = new JLabel("Selected Value:"); field = new JTextField(5); JPanel panel = new JPanel(); panel.setLayout(new FlowLayout()); panel.add(label); panel.add(field); add(slider, BorderLayout.NORTH); add(panel, BorderLayout.SOUTH); } public void stateChanged(ChangeEvent e) { JSlider slider = (JSlider) e.getSource(); // 获取JSlider的选择值 field.setText(String.valueOf(slider.getValue())); } public static void showFrame() { JPanel panel = new JSliderDemo(); panel.setOpaque(true); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setTitle("JSlider Demo"); frame.setContentPane(panel); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JSliderDemo.showFrame(); } }); } }
以下是上面代码段的结果。