Java Swing | JSplitPane with Examples

14 Oct, 2019
JSplitPane is a part of Java Swing. JSplitPane is used to divide only two components. JSplitPane is to use resize the components . By using the JSplitPane the user can manually resize the component till its minimum size . JSplitPane can be of two types, one is the vertical and horizontal splitpane
Constructor of JSplitPane are:
JSplitPane() : creates a new split pane that is oriented horizontallyJSplitPane(int o) : creates a new split pane with orientation mentioned.JSplitPane(int o, boolean r) : creates a new split pane with orientation and redrawing style mentioned.JSplitPane(int o, boolean r, Component l, Component r) : creates a new split pane with orientation, redrawing style and left and right component mentioned.JSplitPane(int o, Component l, Component r): creates a new split pane with orientation and left and right component mentioned.
JSplitPane() : creates a new split pane that is oriented horizontally
JSplitPane(int o) : creates a new split pane with orientation mentioned.
JSplitPane(int o, boolean r) : creates a new split pane with orientation and redrawing style mentioned.
JSplitPane(int o, boolean r, Component l, Component r) : creates a new split pane with orientation, redrawing style and left and right component mentioned.
JSplitPane(int o, Component l, Component r): creates a new split pane with orientation and left and right component mentioned.
Commonly used Functions of JSplitPane are :
getOrientation() : returns the orientation of the split panegetRightComponent() : returns the right component of the splitpanegetTopComponent() : returns the top component of the splitpaneisContinuousLayout() :returns the continuous layout propertygetBottomComponent() : returns the Bottom component of the splitpanesetRightComponent(Component c) : the right component of the splitpane is set to csetLeftComponent(Component c) : the left component of the splitpane is set to csetTopComponent(Component c) : the top component of the splitpane is set to csetBottomComponent(Component c) : the bottom component of the splitpane is set to csetUI(SplitPaneUI ui) : Sets the Look and feel object that renders this component.setResizeWeight(double v) :Specifies how to distribute extra space when the size of the split pane changes.setOneTouchExpandable(boolean n) : Sets the value of the oneTouchExpandable property, whichwhen true provides a UI widget that can collapse or expand the components on clicksetDividerLocation(int l) : Sets the location of the divider.setDividerSize(int n) : Sets the size of the divider.setLastDividerLocation(int n) : Sets the last location the divider.setDividerLocation(double p) : Sets the divider location as a percentage of the JSplitPane’s size.setContinuousLayout(boolean n) : Sets the value of the continuousLayout property, which must be true for the child components to be continuously redisplayed .remove(int index) : removes the Component at the specified index.remove(Component c) : Removes the child component from the pane.isOneTouchExpandable() : returns the oneTouchExpandable property.isContinuousLayout() : returns the continuousLayout property.getMinimumDividerLocation() : returns the minimum location of the divider .getMaximumDividerLocation() : Returns the maximum location of the divider .getDividerSize() : Returns the size of the divider.getDividerLocation() : returns the last value passed to setDividerLocation.addImpl(Component c, Object co, int i) : adds the specified component to this split pane.setUI(SplitPaneUI ui) : sets the look and feel object that renders this component.getUI() : returns the look and feel object that renders this component.paramString() : returns a string representation of this JSplitPane.getUIClassID() : returns the name of the Look and feel class that renders this component.getAccessibleContext() : gets the AccessibleContext associated with this JSplitPane.
getOrientation() : returns the orientation of the split pane
getRightComponent() : returns the right component of the splitpane
getTopComponent() : returns the top component of the splitpane
isContinuousLayout() :returns the continuous layout property
getBottomComponent() : returns the Bottom component of the splitpane
setRightComponent(Component c) : the right component of the splitpane is set to c
setLeftComponent(Component c) : the left component of the splitpane is set to c
setTopComponent(Component c) : the top component of the splitpane is set to c
setBottomComponent(Component c) : the bottom component of the splitpane is set to c
setUI(SplitPaneUI ui) : Sets the Look and feel object that renders this component.
setResizeWeight(double v) :Specifies how to distribute extra space when the size of the split pane changes.
setOneTouchExpandable(boolean n) : Sets the value of the oneTouchExpandable property, whichwhen true provides a UI widget that can collapse or expand the components on click
setDividerLocation(int l) : Sets the location of the divider.
setDividerSize(int n) : Sets the size of the divider.
setLastDividerLocation(int n) : Sets the last location the divider.
setDividerLocation(double p) : Sets the divider location as a percentage of the JSplitPane’s size.
setContinuousLayout(boolean n) : Sets the value of the continuousLayout property, which must be true for the child components to be continuously redisplayed .
remove(int index) : removes the Component at the specified index.
remove(Component c) : Removes the child component from the pane.
isOneTouchExpandable() : returns the oneTouchExpandable property.
isContinuousLayout() : returns the continuousLayout property.
getMinimumDividerLocation() : returns the minimum location of the divider .
getMaximumDividerLocation() : Returns the maximum location of the divider .
getDividerSize() : Returns the size of the divider.
getDividerLocation() : returns the last value passed to setDividerLocation.
addImpl(Component c, Object co, int i) : adds the specified component to this split pane.
setUI(SplitPaneUI ui) : sets the look and feel object that renders this component.
getUI() : returns the look and feel object that renders this component.
paramString() : returns a string representation of this JSplitPane.
getUIClassID() : returns the name of the Look and feel class that renders this component.
getAccessibleContext() : gets the AccessibleContext associated with this JSplitPane.
The Following programs will illustrate the use of JSplitPane1. Program to create a horizontal JSplitPane to separate two text areas
// Java Program to create a horizontal JSplitPane // to separate two text areasimport javax.swing.event.*;import java.awt.*;import javax.swing.*;class solve extends JFrame {      // frame    static JFrame f;      // text areas    static JTextArea t1, t2;      // main class    public static void main(String[] args)    {        // create a new frame        f = new JFrame("frame");          // create a object        solve s = new solve();          // create a panel        JPanel p1 = new JPanel();        JPanel p = new JPanel();          // create text areas        t1 = new JTextArea(10, 10);        t2 = new JTextArea(10, 10);          // set texts        t1.setText("this is first text area");        t2.setText("this is second text area");          // add text area to panel        p1.add(t1);        p.add(t2);          // create a splitpane        JSplitPane sl = new JSplitPane(SwingConstants.HORIZONTAL, p1, p);          // add panel        f.add(sl);          // set the size of frame        f.setSize(300, 300);          f.show();    }}
Output :
2.Program to create a Vertical JSplitPane to separate two text areas
// Java Program  to create a vertical // JSplitPane to separate two text areasimport javax.swing.event.*;import java.awt.*;import javax.swing.*;class solve extends JFrame {      // frame    static JFrame f;      // text areas    static JTextArea t1, t2;      // main class    public static void main(String[] args)    {        // create a new frame        f = new JFrame("frame");          // create a object        solve s = new solve();          // create a panel        JPanel p1 = new JPanel();        JPanel p = new JPanel();          // create text areas        t1 = new JTextArea(10, 10);        t2 = new JTextArea(10, 10);          // set texts        t1.setText("this is first text area");        t2.setText("this is second text area");          // add text area to panel        p1.add(t1);        p.add(t2);          // create a splitpane        JSplitPane sl = new JSplitPane(SwingConstants.VERTICAL, p1, p);          // set Orientation for slider        sl.setOrientation(SwingConstants.VERTICAL);          // add panel        f.add(sl);          // set the size of frame        f.setSize(300, 300);          f.show();    }}
Output :
2. Java Program to create nested JSplitPane, one of them is one Touch Expandable
// Java Program to create nested JSplitPane, // one of them is one Touch Expandableimport javax.swing.event.*;import java.awt.*;import javax.swing.*;class solve extends JFrame {      // frame    static JFrame f;      // text areas    static JTextArea t1, t2, t3, t4;      // main class    public static void main(String[] args)    {        // create a new frame        f = new JFrame("frame");          // create a object        solve s = new solve();          // create a panel        JPanel p1 = new JPanel();        JPanel p = new JPanel();        JPanel p2 = new JPanel();        JPanel p3 = new JPanel();          // create text areas        t1 = new JTextArea(10, 10);        t2 = new JTextArea(10, 10);        t3 = new JTextArea(10, 10);        t4 = new JTextArea(10, 10);          // set texts        t1.setText("this is first text area");        t2.setText("this is second text area");        t3.setText("this is third text area");        t4.setText("this is fourth text area");          // add text area to panel        p1.add(t1);        p.add(t2);        p2.add(t3);        p3.add(t4);          // create a splitpane        JSplitPane sl = new JSplitPane(SwingConstants.VERTICAL, p1, p);        JSplitPane s2 = new JSplitPane(SwingConstants.VERTICAL, p2, p3);          // set Orientation for slider        sl.setOrientation(SwingConstants.VERTICAL);        s2.setOrientation(SwingConstants.VERTICAL);          s2.setOneTouchExpandable(true);          // set divider location        sl.setDividerLocation(70);          // set Layout for frame        f.setLayout(new FlowLayout());          // add panel        f.add(sl);        f.add(s2);          // set the size of frame        f.setSize(600, 300);          f.show();    }}
Output:
Note : This above programs might not run in an online compiler please use an offline IDE
Akanksha_Rai
java-swing
Java
Programming Language
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.