They don't exactly follow our widget pattern, they need ChangeListeners, which are a variant of ActionListeners. There are some extra lines for init too.
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.applet.Applet; import javax.swing.event.*; //new library
public class Slider extends Applet implements ActionListener, ChangeListener //ChangeListener is new { int r = 0; //to hold red's value public void init () { JSlider red = new JSlider (JSlider.HORIZONTAL, 0, 255, 0); red.addChangeListener (this); red.setMajorTickSpacing (50); red.setMinorTickSpacing (25); red.setPaintTicks (true); red.setPaintLabels (true); add (red); }
public void actionPerformed (ActionEvent e) {
}
/** Listen to the slider. */ public void stateChanged (ChangeEvent e) { JSlider source = (JSlider) e.getSource (); if (!source.getValueIsAdjusting ()) { r = (int) source.getValue (); showStatus (r + ""); } } }