Listening for JSplitPane Property Changes : JSplitPane « Swing « Java Tutorial






Listening for JSplitPane Property Changes
import java.awt.BorderLayout;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JSplitPane;

public class PropertySplitPane {
  public static void main(String args[]) {
    JFrame frame = new JFrame("Property Split");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
    splitPane.setContinuousLayout(true);
    splitPane.setOneTouchExpandable(true);

    JComponent topComponent = new JButton("A");
    splitPane.setTopComponent(topComponent);

    JComponent bottomComponent = new JButton("B");
    splitPane.setBottomComponent(bottomComponent);

    PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
      public void propertyChange(PropertyChangeEvent changeEvent) {
        JSplitPane sourceSplitPane = (JSplitPane) changeEvent.getSource();
        String propertyName = changeEvent.getPropertyName();
        if (propertyName.equals(JSplitPane.LAST_DIVIDER_LOCATION_PROPERTY)) {
          int current = sourceSplitPane.getDividerLocation();
          System.out.println("Current: " + current);
          Integer last = (Integer) changeEvent.getNewValue();
          System.out.println("Last: " + last);
          Integer priorLast = (Integer) changeEvent.getOldValue();
          System.out.println("Prior last: " + priorLast);
        }
      }
    };

    splitPane.addPropertyChangeListener(propertyChangeListener);

    frame.add(splitPane, BorderLayout.CENTER);
    frame.setSize(300, 150);
    frame.setVisible(true);
  }
}








14.50.JSplitPane
14.50.1.JSplitPane
14.50.2.Moving the JSplitPane DividerMoving the JSplitPane Divider
14.50.3.Setting Orientation: JSplitPane.VERTICAL_SPLIT or JSplitPane.HORIZONTAL_SPLITSetting Orientation: JSplitPane.VERTICAL_SPLIT or JSplitPane.HORIZONTAL_SPLIT
14.50.4.Create a left-right split pane
14.50.5.Create a top-bottom split pane
14.50.6.Resizing Components and Working with a One-Touch Expandable DividerResizing Components and Working with a One-Touch Expandable Divider
14.50.7.Nested JSplitPaneNested JSplitPane
14.50.8.Listening for JSplitPane Property ChangesListening for JSplitPane Property Changes
14.50.9.set Divider Location for JSplitPane
14.50.10.Continuously move the divider and resize its child components while the user is dragging the divider
14.50.11.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
14.50.12.Distributing Space When a JSplitPane Container Is Resized
14.50.13.Getting the Setting the Children in a JSplitPane Container
14.50.14.Customizing a JSplitPane Look and Feel