<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FSplitpane</id>
		<title>Java/Swing JFC/Splitpane - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FSplitpane"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/Swing_JFC/Splitpane&amp;action=history"/>
		<updated>2026-04-07T04:13:25Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/Swing_JFC/Splitpane&amp;diff=7433&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/Swing_JFC/Splitpane&amp;diff=7433&amp;oldid=prev"/>
				<updated>2010-06-01T06:45:14Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:45, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/Swing_JFC/Splitpane&amp;diff=7432&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/Swing_JFC/Splitpane&amp;diff=7432&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A quick test of the JSplitPane class ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
Java Swing, 2nd Edition&lt;br /&gt;
By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole&lt;br /&gt;
ISBN: 0-596-00408-7&lt;br /&gt;
Publisher: O&amp;quot;Reilly &lt;br /&gt;
*/&lt;br /&gt;
// SimpleSplitPane.java&lt;br /&gt;
//A quick test of the JSplitPane class.&lt;br /&gt;
//&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
import javax.swing.JTextArea;&lt;br /&gt;
public class SimpleSplitPane extends JFrame {&lt;br /&gt;
  static String sometext = &amp;quot;This is a simple text string that is long enough &amp;quot;&lt;br /&gt;
      + &amp;quot;to wrap over a few lines in the simple demo we&amp;quot;re about to build.  &amp;quot;&lt;br /&gt;
      + &amp;quot;We&amp;quot;ll put two text areas side by side in a split pane.&amp;quot;;&lt;br /&gt;
  public SimpleSplitPane() {&lt;br /&gt;
    super(&amp;quot;Simple SplitPane Frame&amp;quot;);&lt;br /&gt;
    setSize(450, 200);&lt;br /&gt;
    setDefaultCloseOperation(EXIT_ON_CLOSE);&lt;br /&gt;
    JTextArea jt1 = new JTextArea(sometext);&lt;br /&gt;
    JTextArea jt2 = new JTextArea(sometext);&lt;br /&gt;
    // Make sure our text boxes do line wrapping and have reasonable&lt;br /&gt;
    // minimum sizes.&lt;br /&gt;
    jt1.setLineWrap(true);&lt;br /&gt;
    jt2.setLineWrap(true);&lt;br /&gt;
    jt1.setMinimumSize(new Dimension(150, 150));&lt;br /&gt;
    jt2.setMinimumSize(new Dimension(150, 150));&lt;br /&gt;
    jt1.setPreferredSize(new Dimension(250, 200));&lt;br /&gt;
    JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jt1, jt2);&lt;br /&gt;
    getContentPane().add(sp, BorderLayout.CENTER);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    SimpleSplitPane ssb = new SimpleSplitPane();&lt;br /&gt;
    ssb.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Continuously move the divider and resize its child components while the user is dragging the divider ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton topComponent = new JButton(&amp;quot;top&amp;quot;);&lt;br /&gt;
    JButton bottomComponent = new JButton(&amp;quot;bottom&amp;quot;);&lt;br /&gt;
    JSplitPane vpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, topComponent, bottomComponent);&lt;br /&gt;
    boolean b = vpane.isContinuousLayout(); // false by default&lt;br /&gt;
    // Set the split pane to continuously resize the child components which the divider is dragged&lt;br /&gt;
    vpane.setContinuousLayout(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create a left-right split pane ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton leftComponent = new JButton(&amp;quot;left&amp;quot;);&lt;br /&gt;
    JButton rightComponent = new JButton(&amp;quot;right&amp;quot;);&lt;br /&gt;
    // Create a left-right split pane&lt;br /&gt;
    JSplitPane hpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftComponent, rightComponent);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create a top-bottom split pane ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton topComponent = new JButton(&amp;quot;top&amp;quot;);&lt;br /&gt;
    JButton bottomComponent = new JButton(&amp;quot;bottom&amp;quot;);&lt;br /&gt;
    JSplitPane vpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, topComponent, bottomComponent);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Distributing Space When a JSplitPane Container Is Resized ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton leftComponent = new JButton(&amp;quot;left&amp;quot;);&lt;br /&gt;
    JButton rightComponent = new JButton(&amp;quot;right&amp;quot;);&lt;br /&gt;
    JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftComponent, rightComponent);&lt;br /&gt;
    double weight = pane.getResizeWeight(); // 0.0 by default&lt;br /&gt;
    weight = 1D;&lt;br /&gt;
    pane.setResizeWeight(weight);&lt;br /&gt;
    weight = .5D;&lt;br /&gt;
    pane.setResizeWeight(weight);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting and Setting the Divider Location in a JSplitPane Container ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton leftComponent = new JButton(&amp;quot;left&amp;quot;);&lt;br /&gt;
    JButton rightComponent = new JButton(&amp;quot;right&amp;quot;);&lt;br /&gt;
    JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftComponent, rightComponent);&lt;br /&gt;
    int loc = pane.getDividerLocation();&lt;br /&gt;
    loc = (int) ((pane.getBounds().getWidth() - pane.getDividerSize()) / 2);&lt;br /&gt;
    pane.setDividerLocation(loc);&lt;br /&gt;
    double propLoc = .5D;&lt;br /&gt;
    pane.setDividerLocation(propLoc);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting the Setting the Children in a JSplitPane Container ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton leftComponent = new JButton(&amp;quot;left&amp;quot;);&lt;br /&gt;
    JButton rightComponent = new JButton(&amp;quot;right&amp;quot;);&lt;br /&gt;
    JButton topComponent = new JButton(&amp;quot;top&amp;quot;);&lt;br /&gt;
    JButton bottomComponent = new JButton(&amp;quot;bottom&amp;quot;);&lt;br /&gt;
    JSplitPane hpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftComponent, rightComponent);&lt;br /&gt;
    JSplitPane vpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, topComponent, bottomComponent);&lt;br /&gt;
    leftComponent = (JButton) hpane.getLeftComponent();&lt;br /&gt;
    rightComponent = (JButton) hpane.getRightComponent();&lt;br /&gt;
    topComponent = (JButton) vpane.getTopComponent();&lt;br /&gt;
    bottomComponent = (JButton) vpane.getBottomComponent();&lt;br /&gt;
    hpane.setLeftComponent(topComponent);&lt;br /&gt;
    hpane.setRightComponent(bottomComponent);&lt;br /&gt;
    vpane.setTopComponent(leftComponent);&lt;br /&gt;
    vpane.setBottomComponent(rightComponent);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Property Split ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import java.beans.PropertyChangeEvent;&lt;br /&gt;
import java.beans.PropertyChangeListener;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class PropertySplit {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Property Split&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);&lt;br /&gt;
    splitPane.setContinuousLayout(true);&lt;br /&gt;
    splitPane.setOneTouchExpandable(true);&lt;br /&gt;
    JComponent topComponent = new OvalPanel();&lt;br /&gt;
    splitPane.setTopComponent(topComponent);&lt;br /&gt;
    JComponent bottomComponent = new OvalPanel();&lt;br /&gt;
    splitPane.setBottomComponent(bottomComponent);&lt;br /&gt;
    PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {&lt;br /&gt;
      public void propertyChange(PropertyChangeEvent changeEvent) {&lt;br /&gt;
        JSplitPane sourceSplitPane = (JSplitPane) changeEvent&lt;br /&gt;
            .getSource();&lt;br /&gt;
        String propertyName = changeEvent.getPropertyName();&lt;br /&gt;
        if (propertyName&lt;br /&gt;
            .equals(JSplitPane.LAST_DIVIDER_LOCATION_PROPERTY)) {&lt;br /&gt;
          int current = sourceSplitPane.getDividerLocation();&lt;br /&gt;
          System.out.println(&amp;quot;Current: &amp;quot; + current);&lt;br /&gt;
          Integer last = (Integer) changeEvent.getNewValue();&lt;br /&gt;
          System.out.println(&amp;quot;Last: &amp;quot; + last);&lt;br /&gt;
          Integer priorLast = (Integer) changeEvent.getOldValue();&lt;br /&gt;
          System.out.println(&amp;quot;Prior last: &amp;quot; + priorLast);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    splitPane.addPropertyChangeListener(propertyChangeListener);&lt;br /&gt;
    Container contentPane = frame.getContentPane();&lt;br /&gt;
    contentPane.add(splitPane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class OvalPanel extends JPanel {&lt;br /&gt;
  Color color;&lt;br /&gt;
  public OvalPanel() {&lt;br /&gt;
    this(Color.black);&lt;br /&gt;
  }&lt;br /&gt;
  public OvalPanel(Color color) {&lt;br /&gt;
    this.color = color;&lt;br /&gt;
  }&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    int width = getWidth();&lt;br /&gt;
    int height = getHeight();&lt;br /&gt;
    g.setColor(color);&lt;br /&gt;
    g.drawOval(0, 0, width, height);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Resize SplitPane ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class ResizeSplit {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    String title = &amp;quot;Resize Split&amp;quot;;&lt;br /&gt;
    final JFrame vFrame = new JFrame(title);&lt;br /&gt;
    vFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JButton topButton = new JButton(&amp;quot;Top&amp;quot;);&lt;br /&gt;
    JButton bottomButton = new JButton(&amp;quot;Bottom&amp;quot;);&lt;br /&gt;
    final JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);&lt;br /&gt;
    splitPane.setTopComponent(topButton);&lt;br /&gt;
    splitPane.setBottomComponent(bottomButton);&lt;br /&gt;
    ActionListener oneActionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent event) {&lt;br /&gt;
        splitPane.setResizeWeight(1.0);&lt;br /&gt;
        vFrame.setSize(300, 250);&lt;br /&gt;
        vFrame.validate();&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    bottomButton.addActionListener(oneActionListener);&lt;br /&gt;
    ActionListener anotherActionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent event) {&lt;br /&gt;
        splitPane.setResizeWeight(0.5);&lt;br /&gt;
        vFrame.setSize(300, 250);&lt;br /&gt;
        vFrame.validate();&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    topButton.addActionListener(anotherActionListener);&lt;br /&gt;
    vFrame.getContentPane().add(splitPane, BorderLayout.CENTER);&lt;br /&gt;
    vFrame.setSize(300, 150);&lt;br /&gt;
    vFrame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SplitPane Demo 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
/* From http://java.sun.ru/docs/books/tutorial/index.html */&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions are met:&lt;br /&gt;
 *&lt;br /&gt;
 * -Redistribution of source code must retain the above copyright notice, this&lt;br /&gt;
 *  list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 * -Redistribution in binary form must reproduce the above copyright notice,&lt;br /&gt;
 *  this list of conditions and the following disclaimer in the documentation&lt;br /&gt;
 *  and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 * Neither the name of Sun Microsystems, Inc. or the names of contributors may&lt;br /&gt;
 * be used to endorse or promote products derived from this software without&lt;br /&gt;
 * specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * This software is provided &amp;quot;AS IS,&amp;quot; without a warranty of any kind. ALL&lt;br /&gt;
 * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING&lt;br /&gt;
 * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE&lt;br /&gt;
 * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. (&amp;quot;SUN&amp;quot;)&lt;br /&gt;
 * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE&lt;br /&gt;
 * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS&lt;br /&gt;
 * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST&lt;br /&gt;
 * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,&lt;br /&gt;
 * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY&lt;br /&gt;
 * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,&lt;br /&gt;
 * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.&lt;br /&gt;
 *&lt;br /&gt;
 * You acknowledge that this software is not designed, licensed or intended&lt;br /&gt;
 * for use in the design, construction, operation or maintenance of any&lt;br /&gt;
 * nuclear facility.&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.util.MissingResourceException;&lt;br /&gt;
import java.util.ResourceBundle;&lt;br /&gt;
import java.util.StringTokenizer;&lt;br /&gt;
import java.util.Vector;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JList;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
import javax.swing.ListSelectionModel;&lt;br /&gt;
import javax.swing.event.ListSelectionEvent;&lt;br /&gt;
import javax.swing.event.ListSelectionListener;&lt;br /&gt;
public class SplitPaneDemo2 extends JFrame implements ListSelectionListener {&lt;br /&gt;
  private JLabel label;&lt;br /&gt;
  public SplitPaneDemo2() {&lt;br /&gt;
    super(&amp;quot;SplitPaneDemo2&amp;quot;);&lt;br /&gt;
    //Create an instance of SplitPaneDemo&lt;br /&gt;
    SplitPaneDemo splitPaneDemo = new SplitPaneDemo();&lt;br /&gt;
    JSplitPane top = splitPaneDemo.getSplitPane();&lt;br /&gt;
    splitPaneDemo.getImageList().addListSelectionListener(this);&lt;br /&gt;
    //XXXX: Bug #4131528, borders on nested split panes accumulate.&lt;br /&gt;
    //Workaround: Set the border on any split pane within&lt;br /&gt;
    //another split pane to null. Components within nested split&lt;br /&gt;
    //panes need to have their own border for this to work well.&lt;br /&gt;
    top.setBorder(null);&lt;br /&gt;
    //Create a regular old label&lt;br /&gt;
    label = new JLabel(&amp;quot;Click on an image name in the list.&amp;quot;, JLabel.CENTER);&lt;br /&gt;
    //Create a split pane and put &amp;quot;top&amp;quot; (a split pane)&lt;br /&gt;
    //and JLabel instance in it.&lt;br /&gt;
    JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, top,&lt;br /&gt;
        label);&lt;br /&gt;
    splitPane.setOneTouchExpandable(true);&lt;br /&gt;
    splitPane.setDividerLocation(180);&lt;br /&gt;
    //Provide minimum sizes for the two components in the split pane&lt;br /&gt;
    top.setMinimumSize(new Dimension(100, 50));&lt;br /&gt;
    label.setMinimumSize(new Dimension(100, 30));&lt;br /&gt;
    //Add the split pane to this frame&lt;br /&gt;
    getContentPane().add(splitPane);&lt;br /&gt;
  }&lt;br /&gt;
  public void valueChanged(ListSelectionEvent e) {&lt;br /&gt;
    if (e.getValueIsAdjusting())&lt;br /&gt;
      return;&lt;br /&gt;
    JList theList = (JList) e.getSource();&lt;br /&gt;
    if (theList.isSelectionEmpty()) {&lt;br /&gt;
      label.setText(&amp;quot;Nothing selected.&amp;quot;);&lt;br /&gt;
    } else {&lt;br /&gt;
      int index = theList.getSelectedIndex();&lt;br /&gt;
      label.setText(&amp;quot;Selected image number &amp;quot; + index);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Create the GUI and show it. For thread safety, this method should be&lt;br /&gt;
   * invoked from the event-dispatching thread.&lt;br /&gt;
   */&lt;br /&gt;
  private static void createAndShowGUI() {&lt;br /&gt;
    //Make sure we have nice window decorations.&lt;br /&gt;
    JFrame.setDefaultLookAndFeelDecorated(true);&lt;br /&gt;
    JDialog.setDefaultLookAndFeelDecorated(true);&lt;br /&gt;
    //Create and set up the window.&lt;br /&gt;
    JFrame frame = new SplitPaneDemo2();&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    //Display the window.&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    //Schedule a job for the event-dispatching thread:&lt;br /&gt;
    //creating and showing this application&amp;quot;s GUI.&lt;br /&gt;
    javax.swing.SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;
      public void run() {&lt;br /&gt;
        createAndShowGUI();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class SplitPaneDemo implements ListSelectionListener {&lt;br /&gt;
  private Vector imageNames;&lt;br /&gt;
  private JLabel picture;&lt;br /&gt;
  private JList list;&lt;br /&gt;
  private JSplitPane splitPane;&lt;br /&gt;
  public SplitPaneDemo() {&lt;br /&gt;
    //Read image names from a properties file.&lt;br /&gt;
    ResourceBundle imageResource;&lt;br /&gt;
    try {&lt;br /&gt;
      imageResource = ResourceBundle.getBundle(&amp;quot;imagenames&amp;quot;);&lt;br /&gt;
      String imageNamesString = imageResource.getString(&amp;quot;images&amp;quot;);&lt;br /&gt;
      imageNames = parseList(imageNamesString);&lt;br /&gt;
    } catch (MissingResourceException e) {&lt;br /&gt;
      handleMissingResource(e);&lt;br /&gt;
    }&lt;br /&gt;
    //Create the list of images and put it in a scroll pane.&lt;br /&gt;
    list = new JList(imageNames);&lt;br /&gt;
    list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);&lt;br /&gt;
    list.setSelectedIndex(0);&lt;br /&gt;
    list.addListSelectionListener(this);&lt;br /&gt;
    JScrollPane listScrollPane = new JScrollPane(list);&lt;br /&gt;
    //Set up the picture label and put it in a scroll pane.&lt;br /&gt;
    ImageIcon firstImage = createImageIcon(&amp;quot;images/&amp;quot;&lt;br /&gt;
        + (String) imageNames.firstElement());&lt;br /&gt;
    if (firstImage != null) {&lt;br /&gt;
      picture = new JLabel(firstImage);&lt;br /&gt;
    } else {&lt;br /&gt;
      picture = new JLabel((String) imageNames.firstElement());&lt;br /&gt;
    }&lt;br /&gt;
    JScrollPane pictureScrollPane = new JScrollPane(picture);&lt;br /&gt;
    //Create a split pane with the two scroll panes in it.&lt;br /&gt;
    splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, listScrollPane,&lt;br /&gt;
        pictureScrollPane);&lt;br /&gt;
    splitPane.setOneTouchExpandable(true);&lt;br /&gt;
    splitPane.setDividerLocation(150);&lt;br /&gt;
    //Provide minimum sizes for the two components in the split pane.&lt;br /&gt;
    Dimension minimumSize = new Dimension(100, 50);&lt;br /&gt;
    listScrollPane.setMinimumSize(minimumSize);&lt;br /&gt;
    pictureScrollPane.setMinimumSize(minimumSize);&lt;br /&gt;
    //Provide a preferred size for the split pane.&lt;br /&gt;
    splitPane.setPreferredSize(new Dimension(400, 200));&lt;br /&gt;
  }&lt;br /&gt;
  //Used by SplitPaneDemo2&lt;br /&gt;
  public JList getImageList() {&lt;br /&gt;
    return list;&lt;br /&gt;
  }&lt;br /&gt;
  public JSplitPane getSplitPane() {&lt;br /&gt;
    return splitPane;&lt;br /&gt;
  }&lt;br /&gt;
  public void valueChanged(ListSelectionEvent e) {&lt;br /&gt;
    if (e.getValueIsAdjusting())&lt;br /&gt;
      return;&lt;br /&gt;
    JList theList = (JList) e.getSource();&lt;br /&gt;
    if (theList.isSelectionEmpty()) {&lt;br /&gt;
      picture.setIcon(null);&lt;br /&gt;
      picture.setText(null);&lt;br /&gt;
    } else {&lt;br /&gt;
      int index = theList.getSelectedIndex();&lt;br /&gt;
      ImageIcon newImage = createImageIcon(&amp;quot;images/&amp;quot;&lt;br /&gt;
          + (String) imageNames.elementAt(index));&lt;br /&gt;
      picture.setIcon(newImage);&lt;br /&gt;
      if (newImage != null) {&lt;br /&gt;
        picture.setText(null);&lt;br /&gt;
      } else {&lt;br /&gt;
        picture.setText(&amp;quot;Image not found: &amp;quot;&lt;br /&gt;
            + (String) imageNames.elementAt(index));&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  protected static Vector parseList(String theStringList) {&lt;br /&gt;
    Vector v = new Vector(10);&lt;br /&gt;
    StringTokenizer tokenizer = new StringTokenizer(theStringList, &amp;quot; &amp;quot;);&lt;br /&gt;
    while (tokenizer.hasMoreTokens()) {&lt;br /&gt;
      String image = tokenizer.nextToken();&lt;br /&gt;
      v.addElement(image);&lt;br /&gt;
    }&lt;br /&gt;
    return v;&lt;br /&gt;
  }&lt;br /&gt;
  /** Called when the image property file can&amp;quot;t be found. */&lt;br /&gt;
  private void handleMissingResource(MissingResourceException e) {&lt;br /&gt;
    System.err.println();&lt;br /&gt;
    System.err.println(&amp;quot;Can&amp;quot;t find the properties file &amp;quot;&lt;br /&gt;
        + &amp;quot;that contains the image names.&amp;quot;);&lt;br /&gt;
    System.err.println(&amp;quot;Its name should be imagenames.properties, &amp;quot;&lt;br /&gt;
        + &amp;quot;and it should&amp;quot;);&lt;br /&gt;
    System.err.println(&amp;quot;contain a single line that specifies &amp;quot;&lt;br /&gt;
        + &amp;quot;one or more image&amp;quot;);&lt;br /&gt;
    System.err.println(&amp;quot;files to be found in a directory &amp;quot;&lt;br /&gt;
        + &amp;quot;named images.  Example:&amp;quot;);&lt;br /&gt;
    System.err.println();&lt;br /&gt;
    System.err.println(&amp;quot;    images=Bird.gif Cat.gif Dog.gif&amp;quot;);&lt;br /&gt;
    System.err.println();&lt;br /&gt;
    throw (e); //Used to be exit(1), but that causes the console to&lt;br /&gt;
    //go away under Java Web Start; this way, you&amp;quot;re&lt;br /&gt;
    //more likely to see a relevant error message.&lt;br /&gt;
  }&lt;br /&gt;
  /** Returns an ImageIcon, or null if the path was invalid. */&lt;br /&gt;
  protected static ImageIcon createImageIcon(String path) {&lt;br /&gt;
    java.net.URL imgURL = SplitPaneDemo.class.getResource(path);&lt;br /&gt;
    if (imgURL != null) {&lt;br /&gt;
      return new ImageIcon(imgURL);&lt;br /&gt;
    } else {&lt;br /&gt;
      System.err.println(&amp;quot;Couldn&amp;quot;t find file: &amp;quot; + path);&lt;br /&gt;
      return null;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Create the GUI and show it. For thread safety, this method should be&lt;br /&gt;
   * invoked from the event-dispatching thread.&lt;br /&gt;
   */&lt;br /&gt;
  private static void createAndShowGUI() {&lt;br /&gt;
    //Make sure we have nice window decorations.&lt;br /&gt;
    JFrame.setDefaultLookAndFeelDecorated(true);&lt;br /&gt;
    JDialog.setDefaultLookAndFeelDecorated(true);&lt;br /&gt;
    //Create and set up the window.&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;SplitPaneDemo&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    SplitPaneDemo splitPaneDemo = new SplitPaneDemo();&lt;br /&gt;
    frame.getContentPane().add(splitPaneDemo.getSplitPane());&lt;br /&gt;
    //Display the window.&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    //Schedule a job for the event-dispatching thread:&lt;br /&gt;
    //creating and showing this application&amp;quot;s GUI.&lt;br /&gt;
    javax.swing.SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;
      public void run() {&lt;br /&gt;
        createAndShowGUI();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SplitPane Sample 3 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class SplitPaneSample {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame vFrame = new JFrame(&amp;quot;JSplitPane Sample&amp;quot;);&lt;br /&gt;
    vFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JSplitPane vSplitPane = new JSplitPane();&lt;br /&gt;
    vSplitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);&lt;br /&gt;
    vFrame.getContentPane().add(vSplitPane, BorderLayout.CENTER);&lt;br /&gt;
    vFrame.setSize(300, 150);&lt;br /&gt;
    vFrame.setVisible(true);&lt;br /&gt;
    JFrame hFrame = new JFrame(&amp;quot;JSplitPane Sample&amp;quot;);&lt;br /&gt;
    JSplitPane hSplitPane = new JSplitPane();&lt;br /&gt;
    hFrame.getContentPane().add(hSplitPane, BorderLayout.CENTER);&lt;br /&gt;
    hFrame.setSize(300, 150);&lt;br /&gt;
    hFrame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SplitPane: VerticalSplit ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class VerticalSplit {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame vFrame = new JFrame(&amp;quot;Vertical Split&amp;quot;);&lt;br /&gt;
    vFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JComponent leftButton = new JButton(&amp;quot;Left&amp;quot;);&lt;br /&gt;
    JComponent rightButton = new JButton(&amp;quot;Right&amp;quot;);&lt;br /&gt;
    final JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);&lt;br /&gt;
    splitPane.setOneTouchExpandable(true);&lt;br /&gt;
    splitPane.setLeftComponent(leftButton);&lt;br /&gt;
    splitPane.setRightComponent(rightButton);&lt;br /&gt;
    ActionListener oneActionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent event) {&lt;br /&gt;
        splitPane.resetToPreferredSizes();&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    ((JButton) rightButton).addActionListener(oneActionListener);&lt;br /&gt;
    ActionListener anotherActionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent event) {&lt;br /&gt;
        splitPane.setDividerLocation(10);&lt;br /&gt;
        splitPane.setContinuousLayout(true);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    ((JButton) leftButton).addActionListener(anotherActionListener);&lt;br /&gt;
    vFrame.getContentPane().add(splitPane, BorderLayout.CENTER);&lt;br /&gt;
    vFrame.setSize(300, 150);&lt;br /&gt;
    vFrame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Swing SplitPane Sample ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class SwingSplitSample {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;JSplitPane Sample&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JSplitPane splitPane = new JSplitPane();&lt;br /&gt;
    splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);&lt;br /&gt;
    frame.getContentPane().add(splitPane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 200);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The split pane supports a one-touch-expandable capability that allows the user to conveniently move the divider to either end with a single click ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JButton topComponent = new JButton(&amp;quot;top&amp;quot;);&lt;br /&gt;
    JButton bottomComponent = new JButton(&amp;quot;bottom&amp;quot;);&lt;br /&gt;
    JSplitPane vpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, topComponent, bottomComponent);&lt;br /&gt;
    boolean b = vpane.isOneTouchExpandable(); // false by default&lt;br /&gt;
    vpane.setOneTouchExpandable(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use the split pane ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import java.awt.event.WindowListener;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JSplitPane;&lt;br /&gt;
public class SplitSample extends JFrame {&lt;br /&gt;
  protected JSplitPane split;&lt;br /&gt;
  public SplitSample() {&lt;br /&gt;
    super(&amp;quot;Simple Split Pane&amp;quot;);&lt;br /&gt;
    setSize(400, 400);&lt;br /&gt;
    getContentPane().setLayout(new BorderLayout());&lt;br /&gt;
    JSplitPane spLeft = new JSplitPane(JSplitPane.VERTICAL_SPLIT, new JPanel(), new JPanel());&lt;br /&gt;
    spLeft.setDividerSize(8);&lt;br /&gt;
    spLeft.setContinuousLayout(true);&lt;br /&gt;
    JSplitPane spRight = new JSplitPane(JSplitPane.VERTICAL_SPLIT, new JPanel(), new JPanel());&lt;br /&gt;
    spRight.setDividerSize(8);&lt;br /&gt;
    spRight.setContinuousLayout(true);&lt;br /&gt;
    split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, spLeft, spRight);&lt;br /&gt;
    split.setContinuousLayout(false);&lt;br /&gt;
    split.setOneTouchExpandable(true);&lt;br /&gt;
    getContentPane().add(split, BorderLayout.CENTER);&lt;br /&gt;
    WindowListener wndCloser = new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    addWindowListener(wndCloser);&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String argv[]) {&lt;br /&gt;
    new SplitSample();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>