// State picking with a slider.
//
// CS 310, Spring 2008
import javax.swing.JSlider;
import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.util.Dictionary;
import java.util.Hashtable;
import java.awt.Component;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;
// <applet
// code = "stateslider" archive = "swingc.jar" height = 60 width = 250>
// </applet>
public class
stateslider
extends JApplet {
@Override
public void
init() {
final JPanel panel = new JPanel();
add(panel);
final JLabel stateLabel = new JLabel(StateNames.stateNames[24]);
panel.add(stateLabel);
final JSlider slider = new JSlider(0, 49, 24);
slider.setPaintLabels(true);
final Dictionary<Integer, Component> labelTable =
new Hashtable<Integer, Component>();
labelTable.put(0, new JLabel("AL"));
labelTable.put(10, new JLabel("HA"));
labelTable.put(20, new JLabel("MA"));
labelTable.put(30, new JLabel("NM"));
labelTable.put(40, new JLabel("SD"));
labelTable.put(49, new JLabel("WY"));
slider.setLabelTable(labelTable);
slider.addChangeListener(
new ChangeListener() {
public void
stateChanged(ChangeEvent e) {
JSlider slider = (JSlider) e.getSource();
// The padding spaces are a hack to make sure the label's large
// enough to get a line of its own.
stateLabel.setText(
" " + StateNames.stateNames[slider.getValue()] + " ");
}
});
panel.add(slider);
}
}
syntax highlighted by Code2HTML, v. 0.9.1