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 + "");
}
}
}