Reviews : Java Books :
Learning Java : Chapter 14: Using Swing Components

Title: Learning Java
ISBN: 1565927184
Order No 7184
US Price: $ 34.95
Publication Date: May 2000
Pages: 722
© O'Reilly & Associates, Inc.
Author's Top Ten Tips and Tricks

Learning Java
Chapter 14: Using Swing Components

Scrollbars and Sliders

JScrollPane is such a handy component that you may not ever need to use scrollbars by themselves. In fact, if you ever do find yourself using a scrollbar by itself, chances are you really want to use another component called a slider.

There's not much point in describing the appearance and functionality of scrollbars and sliders. Instead, let's jump right in with an example that includes both components. Figure 14-9 shows a simple example with both a scrollbar and a slider.

Figure 14-9. Using a scrollbar and a slider

Here is the source code for this example:

//file: Slippery.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class Slippery extends JFrame {
  public Slippery(  ) {
    super("Slippery v1.0");
    setSize(220, 160);
    setLocation(200, 200);
    Container content = getContentPane(  );
    JPanel main = new JPanel(new GridLayout(2, 1));
    JPanel scrollBarPanel = new JPanel(  );
    final JScrollBar scrollBar =
        new JScrollBar(JScrollBar.HORIZONTAL, 0, 48, 0, 255);
    int height = scrollBar.getPreferredSize(  ).height;
    scrollBar.setPreferredSize(new Dimension(175, height));
    scrollBarPanel.add(scrollBar);
    main.add(scrollBarPanel);
    JPanel sliderPanel = new JPanel(  );
    final JSlider slider =
        new JSlider(JSlider.HORIZONTAL, 0, 255, 128);
    slider.setMajorTickSpacing(48);
    slider.setMinorTickSpacing(16);
    slider.setPaintTicks(true);
    sliderPanel.add(slider);
    main.add(sliderPanel);
    content.add(main, BorderLayout.CENTER);
    final JLabel statusLabel =
        new JLabel("Welcome to Slippery v1.0");
    content.add(statusLabel, BorderLayout.SOUTH);
    // wire up the event handlers
    scrollBar.addAdjustmentListener(new AdjustmentListener(  ) {
      public void adjustmentValueChanged(AdjustmentEvent e) {
        statusLabel.setText("JScrollBar's current value = "
                            + scrollBar.getValue(  ));
      }
    });
    slider.addChangeListener(new ChangeListener(  ) {
      public void stateChanged(ChangeEvent e) {
        statusLabel.setText("JSlider's current value = "
                            + slider.getValue(  ));
      }
    });
  }

  public static void main(String[] args) {
    JFrame f = new Slippery(  );
    f.addWindowListener(new WindowAdapter(  ) {
      public void windowClosing(WindowEvent e) { System.exit(0); }
    });
    f.setVisible(true);
  }
}

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.