Slider change action listener : Slider « Swing JFC « Java






Slider change action listener

Slider change action listener
  
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class SliderDemo extends JFrame {
  protected JLabel label;

  protected JSlider slider;

  public SliderDemo() {
    init();
  }

  public void init() {
    getContentPane().setLayout(new FlowLayout());

    JPanel p0 = new JPanel();
    p0.setLayout(new BoxLayout(p0, BoxLayout.X_AXIS));

    JPanel p1 = new JPanel();
    p1.setLayout(new GridLayout(3, 1));

    JPanel p = new JPanel();
    p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));

    label = new JLabel("101.5 FM");
    label.setFont(new Font("Arial", Font.BOLD, 24));
    p.add(label);

    p1.add(p);

    slider = new JSlider(JSlider.HORIZONTAL, 1, 5, 1);
    slider.setPaintLabels(true);
    slider.setMajorTickSpacing(5);
    MyChangeListener lst = new MyChangeListener();
    slider.addChangeListener(lst);

    p = new JPanel();
    p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
    p.add(slider);
    p1.add(p);

    p = new JPanel();
    p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));

    JPanel p2 = new JPanel();
    p2.setLayout(new BoxLayout(p2, BoxLayout.X_AXIS));

    for (int k = 1; k <= 5; k++) {
      JButton fv = new JButton(Integer.toString(k));
      fv.addActionListener(new MyActionListener(k));
      p2.add(fv);
    }

    p.add(p2);
    p1.add(p);
    p0.add(p1);

    p = new JPanel();
    p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));

    p0.add(p);

    getContentPane().add(p0);

    lst.stateChanged(new ChangeEvent(slider));
  }

  public synchronized void playStation(int index) {
    slider.setValue(index);
  }

  class MyActionListener implements ActionListener {
    protected int m_index;

    MyActionListener(int index) {
      m_index = index;
    }

    public void actionPerformed(ActionEvent e) {
      playStation(m_index);
    }
  }

  class MyChangeListener implements ChangeListener {
    MyChangeListener() {
    }

    public synchronized void stateChanged(ChangeEvent e) {
      int frequency = slider.getValue();
      label.setText(frequency + " FM");
    }
  }

  public static void main(String[] za) {
    SliderDemo d = new SliderDemo();
    d.setSize(400, 200);
    d.show();

  }
}

           
         
    
  








Related examples in the same category

1.Creating a JSlider Component
2.Create a horizontal slider with custom min, max, and value
3.Create a vertical slider with min=0, max=100, value=50
4.Create a vertical slider with custom min, max, and value
5.Make the horizontal slider move right-to-left
6.Make it vertical and move bottom-to-top
7.Make it vertical and move top-to-bottom
8.Get the extent
9.Getting and Setting the Values of a JSlider Component
10.Drawing with Swing, using a JSliderDrawing with Swing, using a JSlider
11.Using progress bars and slidersUsing progress bars and sliders
12.A slider with tick marks and labels
13.An example of JSlider with default labelsAn example of JSlider with default labels
14.Set minor tick marks every 5 units
15.Set major tick marks every 25 units
16.Slider SampleSlider Sample
17.JSlider Sample 2JSlider Sample 2
18.Slider ChangeListenerSlider ChangeListener
19.Inverted SlidersInverted Sliders
20.Date sliderDate slider
21.Tick SlidersTick Sliders
22.Scroll SliderScroll Slider
23.Text SliderText Slider
24.Change the minimum value
25.Change the maximum value
26.Set the extent
27.Move the slider by a fixed amount: the extent.
28.Set all the values at once by using the model
29.Set the value; the new value will be forced into the bar's range
30.Listening for Value Changes in a JSlider Component
31.Constraining JSlider Component Values to Tick Marks
32.Determine if currently snapping to tick marks
33.Snap to tick marks
34.Set to a spot between tick marks; the value moves to closest tick mark
35.Determine if currently painting labels
36.Showing Tick Marks on a JSlider Component
37.Show tick marks
38.The slider allows you to use an arbitrary label at any particular major tick mark.
39.Showing Tick-Mark Labels on a JSlider Component
40.Hide the track
41.Sample SlidersSample Sliders
42.A frame with many sliders and a text field to show slider valuesA frame with many sliders and a text field to show slider values