モジュール java.desktop
パッケージ javax.swing

クラスJSplitPane

すべての実装されたインタフェース:
ImageObserver, MenuContainer, Serializable, Accessible

@JavaBean(defaultProperty="UI")
public class JSplitPane
extends JComponent
implements Accessible
JSplitPaneは、2つ(2つだけ)のComponentを分割するために使用されます。 2つのComponentはルック・アンド・フィールの実装を基準にしてグラフィカルに分割されます。その後、ユーザーは2つのComponentを対話的にサイズ変更できるようになります。 JSplitPaneの使用方法については、「The Java Tutorial」の「How to Use Split Panes」を参照してください。

分割ペイン内の2つのコンポーネントは、JSplitPane.HORIZONTAL_SPLITを使って左右に、JSplitPane.VERTICAL_SPLITを使って上下に並べることができます。 Componentのサイズを変更するには、JSplitPaneの方向に応じてlocationが新しいxまたはyの位置であるsetDividerLocationを呼び出すことをお勧めします。

Componentのサイズを目的のサイズに変更するには、resetToPreferredSizesを呼び出します。

ユーザーがComponentのサイズを変更するときは、Componentsの最小サイズを使用して、Componentに設定できる最大または最小の位置を決めます。 したがって、2つのコンポーネントの最小サイズが分割ペインのサイズより大きい場合、ディバイダはコンポーネントのサイズ変更を許可しません。 JComponentの最小サイズの変更方法については、JComponent.setMinimumSize(java.awt.Dimension)を参照してください。

ユーザーが分割ペインのサイズを変更すると、resizeWeightプロパティに基づき2つのコンポーネントの間に新しいスペースが分配されます。 デフォルトの値0は右または下のコンポーネントがすべてのスペースを取得することを示し、値1は左または上のコンポーネントがすべてのスペースを取得することを示します。

警告: Swingはスレッドに対して安全ではありません。 詳細は、「Swing's Threading Policy」を参照してください。

警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。

導入されたバージョン:
1.2
関連項目:
setDividerLocation(double), resetToPreferredSizes()
  • フィールド詳細

  • コンストラクタの詳細

    • JSplitPane

      public JSplitPane()
      コンポーネントの2つのボタンを使って、水平方向に子コンポーネントが並ぶように設定された新しい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 - boolean値。ディバイダの位置の変更に合わせてコンポーネントが連続して再描画されるようにする場合はtrue、ディバイダの位置の変更が終了するまで再描画を待機する場合はfalse
      例外:
      IllegalArgumentException - orientationがHORIZONTAL_SPLITまたはVERTICAL_SPLITのいずれでもない場合
    • JSplitPane

      public JSplitPane​(int newOrientation, Component newLeftComponent, Component newRightComponent)
      指定された方向と指定されたコンポーネントを使用して新しい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_SPLITまたはJSplitPane.VERTICAL_SPLIT
      newContinuousLayout - boolean値。ディバイダの位置の変更に合わせてコンポーネントが連続して再描画されるようにする場合はtrue、ディバイダの位置の変更が終了するまで再描画を待機する場合はfalse
      newLeftComponent - 水平方向に分割されたペインの左、または垂直方向に分割されたペインの上に表示されるComponent
      newRightComponent - 水平方向に分割されたペインの右、または垂直方向に分割されたペインの下に表示されるComponent
      例外:
      IllegalArgumentException - orientationがHORIZONTAL_SPLITまたはVERTICAL_SPLITのいずれでもない場合
  • メソッドの詳細

    • setUI

      public void setUI​(SplitPaneUI ui)
      このコンポーネントをレンダリングするL&Fオブジェクトを設定します。
      パラメータ:
      ui - SplitPaneUI L&Fオブジェクト
      関連項目:
      UIDefaults.getUI(javax.swing.JComponent)
    • getUI

      @BeanProperty(bound=false, expert=true, description="The L&F object that renders this component.") public SplitPaneUI getUI()
      現在のルック・アンド・フィールを提供しているSplitPaneUIを返します。
      オーバーライド:
      クラスJComponentgetUI
      戻り値:
      このコンポーネントをレンダリングするSplitPaneUIオブジェクト
    • updateUI

      public void updateUI()
      L&Fが変更されたことを示す、UIManagerからの通知です。 現在のUIオブジェクトをUIManagerの最新バージョンに置き換えます。
      オーバーライド:
      updateUI 、クラス:  JComponent
      関連項目:
      JComponent.updateUI()
    • getUIClassID

      @BeanProperty(bound=false, expert=true, description="A string that specifies the name of the L&F class.") public String getUIClassID()
      このコンポーネントをレンダリングするL&Fクラスの名前を返します。
      オーバーライド:
      getUIClassID 、クラス:  JComponent
      戻り値:
      SplitPaneUIの文字列
      関連項目:
      JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)
    • setDividerSize

      @BeanProperty(description="The size of the divider.")public void setDividerSize​(int newSize)
      ディバイダのサイズを設定します。
      パラメータ:
      newSize - ディバイダのサイズをピクセル数で指定するint値
    • getDividerSize

      public int getDividerSize()
      ディバイダのサイズを返します。
      戻り値:
      ディバイダのサイズをピクセル数で指定するint値
    • 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プロパティの値を設定します。JSplitPaneがディバイダのUIウィジェットを提供し、ディバイダを迅速に展開/収納するには、この値をtrueに設定する必要があります。 このプロパティのデフォルト値は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は右または下のコンポーネントが固定され左または上のコンポーネントがすべての余分なスペースを取得することを示します。 具体的には、左/上のコンポーネントは、(ウェイト * 差)の余分なスペースを取得し、右/下のコンポーネントは、((1 - ウェイト) * 差) の余分なスペースを取得します。
      パラメータ:
      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)に基づいて実装されます。 このメソッドは現在のサイズに基づき分割ペインのサイズをただちに変更します。 分割ペインがスクリーン上で正しく実現されない場合、新しいディバイダの位置は現在のサイズ* proportionalLocationが0になり、このメソッドの効果はありません。

      パラメータ:
      proportionalLocation - 0 (上または左)から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に渡された値が現在のサイズより大きい場合は、実際のディバイダの位置と異なる場合があります。
      戻り値:
      ディバイダの位置を指定するint値
    • getMinimumDividerLocation

      @BeanProperty(bound=false, description="The minimum location of the divider from the L&F.") public int getMinimumDividerLocation()
      ルック・アンド・フィールの実装からディバイダの最小の位置を返します。
      戻り値:
      最小の位置のUI固有の値(通常はピクセル数)を指定するint値。UIがnullの場合は -1
    • getMaximumDividerLocation

      @BeanProperty(bound=false) public int getMaximumDividerLocation()
      ルック・アンド・フィールの実装からディバイダの最大の位置を返します。
      戻り値:
      最大の位置のUI固有の値(通常はピクセル数)を指定するint値。UIがnullの場合は -1
    • remove

      public void remove​(Component component)
      子コンポーネントcomponentをペインから削除します。 必要に応じて、leftComponentまたはrightComponentインスタンス変数をリセットします。
      オーバーライド:
      remove、クラス: Container
      パラメータ:
      component - 削除するComponent
      関連項目:
      Container.add(java.awt.Component), Container.invalidate(), Container.validate(), Container.remove(int)
    • remove

      public void remove​(int index)
      指定されたインデックスのComponentを削除します。 必要に応じて、leftComponentおよびrightComponentインスタンス変数を変更してから、スーパー・クラスにメッセージを送ります。
      オーバーライド:
      remove、クラス: Container
      パラメータ:
      index - 削除するコンポーネントを指定するint値。1では左または上のコンポーネントが指定され、2では下または右のコンポーネントが指定される
      関連項目:
      Container.add(java.awt.Component), Container.invalidate(), Container.validate(), Container.getComponentCount()
    • removeAll

      public void removeAll()
      分割ペインからすべての子コンポーネントを削除します。 leftComonentおよびrightComponentインスタンス変数をリセットします。
      オーバーライド:
      removeAll 、クラス:  Container
      関連項目:
      Container.add(java.awt.Component), Container.remove(int), Container.invalidate()
    • isValidateRoot

      @BeanProperty(hidden=true) public boolean isValidateRoot()
      trueを返すと、JSplitPaneの下位オブジェクトでrevalidateを呼び出して、JSplitPaneとそのすべての下位オブジェクトを検証する要求がキューをキューに入れることができます。
      オーバーライド:
      isValidateRoot 、クラス:  JComponent
      戻り値:
      true
      関連項目:
      JComponent.revalidate(), Container.isValidateRoot()
    • addImpl

      protected void addImpl​(Component comp, Object constraints, int index)
      この分割ペインに指定したコンポーネントを追加します。 constraintsが左または上あるいは右または下の子コンポーネントを識別し、その識別子を持つコンポーネントが以前に追加されている場合は、それを削除してから、その位置にcompを追加します。 constraintsが既知の識別子でない場合、レイアウト・マネージャはIllegalArgumentExceptionをスローします。

      指定できる制約オブジェクト(String)は次のとおりです。

      • JSplitPane.TOP
      • JSplitPane.LEFT
      • JSplitPane.BOTTOM
      • JSplitPane.RIGHT
      constraintsオブジェクトがnullの場合、利用可能な最初の位置にコンポーネントが追加されます(開いている場合は左または上、そうでない場合は右または下)。

      オーバーライド:
      addImpl、クラス: Container
      パラメータ:
      comp - 追加するコンポーネント
      constraints - このコンポーネントのレイアウト制約(位置)を指定するObject
      index - コンテナ・リスト内のインデックスを指定するint値。
      例外:
      IllegalArgumentException - constraintsオブジェクトが既存のコンポーネントに一致しない場合
      関連項目:
      Container.addImpl(Component, Object, int)
    • paintChildren

      protected void paintChildren​(Graphics g)
      superにメッセージが送られたあとにfinishedPaintingChildrenを持つUIにメッセージを送り、ボーダーをペイントするために、サブクラス化されます。
      オーバーライド:
      paintChildren 、クラス:  JComponent
      パラメータ:
      g - ペイント先となるGraphicsコンテキスト
      関連項目:
      JComponent.paint(java.awt.Graphics), Container.paint(java.awt.Graphics)
    • paramString

      protected String paramString()
      このJSplitPaneの文字列表現を返します。 このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なる可能性があります。 返される文字列は空でもかまいませんが、nullにはできません。
      オーバーライド:
      paramString 、クラス:  JComponent
      戻り値:
      このJSplitPaneを表す文字列表現。
    • getAccessibleContext

      @BeanProperty(bound=false, expert=true, description="The AccessibleContext associated with this SplitPane.") public AccessibleContext getAccessibleContext()
      このJSplitPaneに関連付けられたAccessibleContextを取得します。 分割ペインの場合、AccessibleContextはAccessibleJSplitPaneの形式を取ります。 必要に応じて新規のAccessibleJSplitPaneインスタンスが作成されます。
      定義:
      getAccessibleContext、インタフェース: Accessible
      オーバーライド:
      getAccessibleContext、クラス: Component
      戻り値:
      このJSplitPaneのAccessibleContextとして機能するAccessibleJSplitPane