仕切線(ディバイダ)の位置を設定する

広告

仕切線の位置を指定する方法を確認します。JSplitPaneクラスで用意されている「setDividerLocation」メソッドを使います。

ディバイダの位置を設定します。これは、Look & Feel の実装に渡されてから
リスナーに通知されます。0 より小さい値は、ディバイダが左または上のコン
ポーネントの適切なサイズの値にリセットされる必要があることを意味してい
ます。リスナーに通知してから、最終的なディバイダの位置が 
setLastDividerLocation により変更されます。 

パラメータ:
  location - UI 固有の値 (通常はピクセル数) を指定する int 値

引数に仕切線の位置をスプリットペインの左端からの距離を表すint型の値で指定します。単位はピクセルです。

実際の使い方は次のようになります。

JSplitPane splitpane = new JSplitPane();
splitpane.setDividerLocation(100);

サンプルプログラム

では簡単なサンプルを作成して試してみます。

JSplitPaneTest6.java

import javax.swing.*;
import java.awt.BorderLayout;

public class JSplitPaneTest6 extends JFrame{

  public static void main(String[] args){
    JSplitPaneTest6 frame = new JSplitPaneTest6();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JSplitPaneTest6(){
    JSplitPane splitpane = new JSplitPane();

    JPanel leftPanel = new JPanel();
    JButton leftButton = new JButton("Left");
    leftPanel.add(leftButton);

    JPanel rightPanel = new JPanel();
    JButton rightButton = new JButton("Right");
    rightPanel.add(rightButton);

    splitpane.setLeftComponent(leftPanel);
    splitpane.setRightComponent(rightPanel);
    splitpane.setDividerLocation(140);

    getContentPane().add(splitpane, BorderLayout.CENTER);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

JSplitPaneで仕切線の位置を設定する

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)