The JSplitPane Class
A split pane is a special container that holds two components, each in its own sub-pane. A splitter bar adjusts the sizes of the two subpanes. In a document viewer, for example, you might use a split pane to show a table of contents next to a page of text. The following example uses two JLabels containing ImageIcons, like the previous example. It displays the two labels, wrapped in JScrollPanes, on either side of a JSplitPane (see Screenshot-10). You can drag the splitter bar back and forth to adjust the sizes of the two contained components.
//file: SplitPaneFrame.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class SplitPaneFrame {
public static void main(String[] args) {
String fileOne = "Piazza di Spagna.jpg";
String fileTwo = "L1-Light.jpg";
if (args.length > 0) fileOne = args[0];
if (args.length > 1) fileTwo = args[1];
JFrame frame = new JFrame("SplitPaneFrame");
JLabel leftImage = new JLabel( new ImageIcon( fileOne ) );
Component left = new JScrollPane(leftImage);
JLabel rightImage = new JLabel( new ImageIcon( fileTwo ) );
Component right = new JScrollPane(rightImage);
JSplitPane split =
new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left, right);
split.setDividerLocation(100);
frame.getContentPane( ).add(split);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setSize(300, 200);
frame.setVisible(true);
}
}
Screenshot-10. Using a split pane