Module  java.desktop
软件包  javax.swing

Class JSplitPane

  • All Implemented Interfaces:
    ImageObserverMenuContainerSerializableAccessible


    @JavaBean(defaultProperty="UI")
    public class JSplitPane
    extends JComponent
    implements Accessible
    JSplitPane用于划分两个(而且只有两个) Component 两个Component基于外观和感觉实现图形划分,然后可以由用户交互地调整两个Component的尺寸。 有关使用JSplitPane信息,请JSplitPane Java教程中的How to Use Split Panes

    拆分窗格中的两个Component可以使用JSplitPane.HORIZONTAL_SPLIT从左到右对齐,或从上到下使用JSplitPane.VERTICAL_SPLIT 更改Component的大小的首选方法是调用setDividerLocation ,其中location是新的x或y位置,具体取决于JSplitPane的方向。

    要将Component调整为首选大小,请调用resetToPreferredSizes

    当用户调整Component s的尺寸时, Components的最小尺寸用于确定最大/最小位置,可设置为Component 如果两个组件的最小大小大于拆分窗格的大小,则分隔符将不允许您调整其大小。 要更改JComponent的最小尺寸,请参阅JComponent.setMinimumSize(java.awt.Dimension)

    当用户调整拆分窗格大小时,将根据resizeWeight属性在两个组件之间分配新空间。 值为0,默认值,表示右/底组件获取所有空间,其中值为1表示左/顶组件获取所有空间。

    警告: Swing不是线程安全的。 有关详细信息,请参阅Swing's Threading Policy

    警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,所有JavaBeans的长期存储支持已被添加到java.beans软件包中。 请参阅XMLEncoder

    从以下版本开始:
    1.2
    另请参见:
    setDividerLocation(double)resetToPreferredSizes()Serialized Form
    • 字段详细信息

      • VERTICAL_SPLIT

        public static final int VERTICAL_SPLIT
        垂直分割表示Component s沿y轴分裂。 例如,两个Component将被分割在另一个之上。
        另请参见:
        Constant Field Values
      • HORIZONTAL_SPLIT

        public static final int HORIZONTAL_SPLIT
        水平分割表示Component是沿x轴分割的。 例如,两个Component将被拆Component另一个的左侧。
        另请参见:
        Constant Field Values
      • ORIENTATION_PROPERTY

        public static final String ORIENTATION_PROPERTY
        方向(水平或垂直)的绑定属性名称。
        另请参见:
        Constant Field Values
      • CONTINUOUS_LAYOUT_PROPERTY

        public static final String CONTINUOUS_LAYOUT_PROPERTY
        continuousLayout的绑定属性名称。
        另请参见:
        Constant Field Values
      • DIVIDER_SIZE_PROPERTY

        public static final String DIVIDER_SIZE_PROPERTY
        边界的绑定属性名称。
        另请参见:
        Constant Field Values
      • ONE_TOUCH_EXPANDABLE_PROPERTY

        public static final String ONE_TOUCH_EXPANDABLE_PROPERTY
        1TouchExpandable的绑定属性。
        另请参见:
        Constant Field Values
      • LAST_DIVIDER_LOCATION_PROPERTY

        public static final String LAST_DIVIDER_LOCATION_PROPERTY
        最后位置的绑定属性。
        另请参见:
        Constant Field Values
      • DIVIDER_LOCATION_PROPERTY

        public static final String DIVIDER_LOCATION_PROPERTY
        dividerLocation的绑定属性。
        从以下版本开始:
        1.3
        另请参见:
        Constant Field Values
      • RESIZE_WEIGHT_PROPERTY

        public static final String RESIZE_WEIGHT_PROPERTY
        重量限制属性。
        从以下版本开始:
        1.3
        另请参见:
        Constant Field Values
      • orientation

        protected int orientation
        观点如何分裂。
      • continuousLayout

        protected boolean continuousLayout
        在调整大小时是否不断重新显示视图。
      • leftComponent

        protected Component leftComponent
        左或顶部组件。
      • rightComponent

        protected Component rightComponent
        右侧或底部组件。
      • dividerSize

        protected int dividerSize
        分隔线的尺寸
      • oneTouchExpandable

        protected boolean oneTouchExpandable
        是否提供了一个小部件来快速展开/折叠拆分窗格?
      • lastDividerLocation

        protected int lastDividerLocation
        拆分窗格的上一个位置。
    • 构造方法详细信息

      • JSplitPane

        public JSplitPane​()
        创建一个新的 JSplitPane配置为使用组件的两个按钮水平地并排排列子组件。
      • JSplitPane

        @ConstructorProperties("orientation")
        public JSplitPane​(int newOrientation)
        创建一个新的 JSplitPane配置指定的方向。
        参数
        newOrientation - JSplitPane.HORIZONTAL_SPLIT或者 JSplitPane.VERTICAL_SPLIT
        异常
        IllegalArgumentException - 如果 orientation不是HORIZONTAL_SPLIT或VERTICAL_SPLIT之一。
      • JSplitPane

        public JSplitPane​(int newOrientation,
                          boolean newContinuousLayout)
        创建一个新的 JSplitPane具有指定的方向和重绘样式。
        参数
        newOrientation - JSplitPane.HORIZONTAL_SPLIT或者 JSplitPane.VERTICAL_SPLIT
        newContinuousLayout - 一个布尔值,当分隔符改变位置时,连续重绘的组件为true,等待直到分隔符位置停止更改为重绘为止
        异常
        IllegalArgumentException - 如果 orientation不是HORIZONTAL_SPLIT或VERTICAL_SPLIT中的一个
      • JSplitPane

        public JSplitPane​(int newOrientation,
                          Component newLeftComponent,
                          Component newRightComponent)
        新新新 JSplitPane新新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPaneJSplitPane新新 JSplitPane新新 JSplitPaneJSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane新新 JSplitPane
        参数
        newOrientation - JSplitPane.HORIZONTAL_SPLIT或者 JSplitPane.VERTICAL_SPLIT
        newLeftComponent - Component将出现在水平拆分窗格的左侧,或垂直拆分窗格的顶部
        newRightComponent - Component将出现在水平拆分窗格的右侧或垂直拆分窗格的底部
        异常
        IllegalArgumentException - 如果 orientation不是以下之一:HORIZONTAL_SPLIT或VERTICAL_SPLIT
      • JSplitPane

        public JSplitPane​(int newOrientation,
                          boolean newContinuousLayout,
                          Component newLeftComponent,
                          Component newRightComponent)
        使用指定的方向和重绘样式以及指定的组件创建一个新的 JSplitPane
        参数
        newOrientation - JSplitPane.HORIZONTAL_SPLITJSplitPane.VERTICAL_SPLIT
        newContinuousLayout - 一个布尔值,对于组件重新绘制,分隔符改变位置时为true,等待直到分隔符位置停止更改为重绘
        newLeftComponent - 将出现在水平拆分窗格左侧或垂直拆分窗格顶部的 Component
        newRightComponent - Component将出现在水平拆分窗格的右侧,或垂直拆分窗格的底部
        异常
        IllegalArgumentException - 如果 orientation不是HORIZONTAL_SPLIT或VERTICAL_SPLIT中的一个
    • 方法详细信息

      • updateUI

        public void updateUI​()
        通知从UIManager ,L&F已经改变。 UIManager替换最新版本的当前UI对象。
        重写:
        updateUIJComponent
        另请参见:
        JComponent.updateUI()
      • setDividerSize

        @BeanProperty(description="The size of the divider.")
        public void setDividerSize​(int newSize)
        设置分频器的大小。
        参数
        newSize - 以像素为单位给出分隔符的大小
      • getDividerSize

        public int getDividerSize​()
        返回分隔符的大小。
        结果
        一个整数,以像素为单位给出分隔符的大小
      • setLeftComponent

        public void setLeftComponent​(Component comp)
        将组件设置在左边(或更高)分隔线。
        参数
        comp - 显示在该位置的 Component
      • getLeftComponent

        @BeanProperty(bound=false,
                      preferred=true,
                      description="The component to the left (or above) the divider.")
        public Component getLeftComponent​()
        将分量返回到左侧(或上方)。
        结果
        Component显示在该位置
      • setTopComponent

        @BeanProperty(bound=false,
                      description="The component above, or to the left of the divider.")
        public void setTopComponent​(Component comp)
        设置上面的分量,或分隔线的左边。
        参数
        comp - 要在该位置显示的 Component
      • getTopComponent

        public Component getTopComponent​()
        返回上面的组件,或者分隔符的左边。
        结果
        Component显示在该位置
      • setRightComponent

        @BeanProperty(bound=false,
                      preferred=true,
                      description="The component to the right (or below) the divider.")
        public void setRightComponent​(Component comp)
        将组件设置在右侧(或更低)分隔线。
        参数
        comp - 要显示在该位置的 Component
      • getRightComponent

        public Component getRightComponent​()
        将分量返回到右侧(或更低)。
        结果
        Component显示在那个位置
      • setBottomComponent

        @BeanProperty(bound=false,
                      description="The component below, or to the right of the divider.")
        public void setBottomComponent​(Component comp)
        设置下面的分量,或分配器的右侧。
        参数
        comp - 要在该位置显示的 Component
      • getBottomComponent

        public Component getBottomComponent​()
        返回下面的组件或分隔符的右侧。
        结果
        Component显示在该位置
      • setOneTouchExpandable

        @BeanProperty(description="UI widget on the divider to quickly expand/collapse the divider.")
        public void setOneTouchExpandable​(boolean newValue)
        设置oneTouchExpandable属性的值,该属性必须为true ,以供JSplitPane在分隔符上提供UI小部件以快速扩展/折叠分隔符。 此属性的默认值为false 有些看起来和感觉可能不支持一触即发展; 他们将忽略此属性。
        参数
        newValue - true以指定拆分窗格应提供折叠/展开小部件
        另请参见:
        isOneTouchExpandable()
      • isOneTouchExpandable

        public boolean isOneTouchExpandable​()
        获取 oneTouchExpandable属性。
        结果
        该值为 oneTouchExpandable属性
        另请参见:
        setOneTouchExpandable(boolean)
      • setLastDividerLocation

        @BeanProperty(description="The last location the divider was at.")
        public void setLastDividerLocation​(int newLastLocation)
        设置分隔符的最后一个位置为 newLastLocation
        参数
        newLastLocation - 一个整数,指定最后一个分隔符位置(以像素为单位),从窗格的左(或上)边到分隔符的左(或上)边
      • getLastDividerLocation

        public int getLastDividerLocation​()
        返回分隔符所在的最后一个位置。
        结果
        一个整数,指定最后一个分隔符位置作为从窗格的左(或上)边缘到分隔符的左(或上)边缘的像素数
      • setOrientation

        @BeanProperty(enumerationValues={"JSplitPane.HORIZONTAL_SPLIT","JSplitPane.VERTICAL_SPLIT"},
                      description="The orientation, or how the splitter is divided.")
        public void setOrientation​(int orientation)
        设置方向,或分离器的分割方式。 选项是:
        • JSplitPane.VERTICAL_SPLIT(组件上方/下方)
        • JSplitPane.HORIZONTAL_SPLIT(组件的左/右方向)
        参数
        orientation - 指定方向的整数
        异常
        IllegalArgumentException - 如果方向不是以下之一:HORIZONTAL_SPLIT或VERTICAL_SPLIT。
      • getOrientation

        public int getOrientation​()
        返回方向。
        结果
        一个给定方向的整数
        另请参见:
        setOrientation(int)
      • setContinuousLayout

        @BeanProperty(description="Whether the child components are continuously redisplayed and laid out during user intervention.")
        public void setContinuousLayout​(boolean newContinuousLayout)
        设置continuousLayout属性的值,该属性必须为true以便在用户干预期间不断重新显示和布局子组件。 此属性的默认值与外观和感觉相关。 有些外观和感觉可能不支持连续布局; 他们将忽略此属性。
        参数
        newContinuousLayout - true如果分配器改变位置,组件应连续重绘
        另请参见:
        isContinuousLayout()
      • isContinuousLayout

        public boolean isContinuousLayout​()
        获取 continuousLayout属性。
        结果
        该值为 continuousLayout属性
        另请参见:
        setContinuousLayout(boolean)
      • setResizeWeight

        @BeanProperty(description="Specifies how to distribute extra space when the split pane resizes.")
        public void setResizeWeight​(double value)
        指定当拆分窗格的大小更改时如何分配额外的空间。 值为0,默认值,表示右/底部组件获取所有额外的空间(左/顶部组件动作固定),其中值为1指定左/顶组件获取所有额外空间(右/底部组件动作固定)。 具体来说,左/顶组件获得(weight * diff)额外的空间,右/底部组件获得(1 - weight)* diff额外空间。
        参数
        value - 如上所述
        异常
        IllegalArgumentException - 如果 value为<0或> 1
        从以下版本开始:
        1.3
      • getResizeWeight

        public double getResizeWeight​()
        返回确定如何分配额外空间的数字。
        结果
        在拆分窗格的大小上分配多少空间
        从以下版本开始:
        1.3
      • resetToPreferredSizes

        public void resetToPreferredSizes​()
        基于子组件的首选大小,可以显示JSplitPane布局。 这可能会导致更改分配器位置。
      • setDividerLocation

        @BeanProperty(description="The location of the divider.")
        public void setDividerLocation​(double proportionalLocation)
        将分隔符位置设置为JSplitPane的大小的百分比。

        这个方法是用setDividerLocation(int)来实现的。 此方法将立即根据当前大小更改拆分窗格的大小。 如果拆分窗格未正确实现并在屏幕上,此方法将不起作用(新分隔符位置将变为(当前大小*比例位置),为0)。

        参数
        proportionalLocation - 一个双精度浮点值,用于指定从零(上/左)到1.0(下/右)的百分比,
        异常
        IllegalArgumentException - 如果指定的位置是<0或> 1.0
      • setDividerLocation

        @BeanProperty(description="The location of the divider.")
        public void setDividerLocation​(int location)
        设置分频器的位置。 这是传递给外观和感觉的实现,然后听众通知。 小于0的值意味着分隔符应该被重置为试图遵守左/顶部组件的首选大小的值。 通知听众后,最后一个分频器位置将通过setLastDividerLocation更新。
        参数
        location - 指定UI特定值(通常为像素数)的int
      • getDividerLocation

        public int getDividerLocation​()
        返回传递给setDividerLocation的最后一个值。 从该方法返回的值可能与实际分隔符位置不同(如果setDividerLocation传递的值大于当前大小)。
        结果
        一个指定分隔符位置的整数
      • getMinimumDividerLocation

        @BeanProperty(bound=false,
                      description="The minimum location of the divider from the L&amp;F.")
        public int getMinimumDividerLocation​()
        从外观实现中返回分隔符的最小位置。
        结果
        指定最小位置(通常为像素数)的UI特定值的整数; 如果UI为null -1
      • getMaximumDividerLocation

        @BeanProperty(bound=false)
        public int getMaximumDividerLocation​()
        从外观实现中返回分隔符的最大位置。
        结果
        指定最大位置(通常为像素数)的UI特定值的整数; 如果UI为null -1
      • addImpl

        protected void addImpl​(Component comp,
                               Object constraints,
                               int index)
        将指定的组件添加到此拆分窗格。 如果constraints标识了左/上或右/底部的子组件,并且先前添加了具有该标识符的组件,则它将被删除,然后将添加comp 如果constraints不是已知标识符之一,布局管理器可能会抛出一个IllegalArgumentException

        可能的约束对象(Strings)是:

        • JSplitPane.TOP
        • JSplitPane.LEFT
        • JSplitPane.BOTTOM
        • JSplitPane.RIGHT
        如果constraints对象是null ,组件将添加到第一个可用位置(左/顶如果打开,否则右/底)。
        重写:
        addImplContainer
        参数
        comp - 要添加的组件
        constraints - 指定此组件的布局约束(位置)的 Object
        index - 指定容器列表中的索引的整数。
        异常
        IllegalArgumentException - 如果 constraints对象与现有组件不匹配
        另请参见:
        Container.addImpl(Component, Object, int)
      • paramString

        protected String paramString​()
        返回此JSplitPane的字符串表示JSplitPane 该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
        重写:
        paramStringJComponent
        结果
        这个 JSplitPane的字符串表示 JSplitPane