領域の展開/収納用のワンタッチボタンを設定する

広告

仕切線によって左右又は上下に分割されている領域を仕切線の上に小さいボタンを設置し、ボタンをクリックするとどちらかの領域を最大化して表示できる便利な機能が用意されています。この機能を利用するにはJSplitPaneクラスで用意されている「setOneTouchExpandable」メソッドを使います。

oneTouchExpandable プロパティーの値を設定します。 この値は、JSplitPane 
がディバイダの UI ウィジェットを提供し、ディバイダを迅速に展開/収納する
ために、true に設定する必要があります。このプロパティーのデフォルトの値
は false です。一部の Look & Feel がワンタッチの展開をサポートしない場
合があります。その場合、このプロパティーは無視されます。

パラメータ:
  newValue - 分割区画が展開/折りたたみウィジェットを提供するように指定す
    る場合は true

引数にワンタッチ機能を利用するかどうかを表すboolean型の値を指定します。利用する場合は「true」を設定します。

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

JSplitPane splitpane = new JSplitPane();
splitpane.setOneTouchExpandable(true);

サンプルプログラム

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

JSplitPaneTest10.java

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

public class JSplitPaneTest10 extends JFrame{

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

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

  JSplitPaneTest10(){
    JSplitPane splitpane = new JSplitPane();
    splitpane.setOneTouchExpandable(true);

    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);

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

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

JSplitPaneでワンタッチボタンを使用する

仕切線の上に矢印記号の付いた小さいボタンが2つ表示されています。では右向きの矢印ボタンをクリックして下さい。

JSplitPaneでワンタッチボタンを使用する

JSplitPaneでワンタッチボタンを使用する

仕切線は右端へ移動し、左側の領域が最大化されて表示されます。元に戻す場合は仕切線上の左向きの矢印ボタンをクリックして下さい。

JSplitPaneでワンタッチボタンを使用する

JSplitPaneでワンタッチボタンを使用する

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。