JSpinnerクラスの定義とコンストラクタ

広告

JSpinnerクラスの定義を確認します。クラス図は次のようになっています。

java.lang.Object
  java.awt.Component
    java.awt.Container
      javax.swing.JComponent
        javax.swing.JSpinner

public class JSpinner
extends JComponent
implements Accessible

JSpinnerはJComponentクラスのサブクラスとなっています。JComponentクラスはSwingで用いられる多くのコンポーネントのベースとなっているクラスです。

JSpinnerクラスのコンストラクタ

JSpinnerクラスをを利用するにはコンストラクタを使ってJSpinnerクラスのオブジェクトを作成します。どのようなコンストラクタが用意されているか確認してみます。

コンストラクタ
JSpinner()
初期値が 0 で最小値または最大値の制限がない Integer SpinnerNumberModel を持つスピナーを構築します。
JSpinner(SpinnerModel model)
次へ進むおよび前に戻るボタンのペアと SpinnerModel 用のエディタを持つ完全なスピナーを構築します。

コンストラクタは2つ用意されています。スピナーのデータモデルを指定するかどうかでコンストラクタを選択します。

では1番目のコンストラクタを確認してみます。

初期値が 0 で最小値または最大値の制限がない Integer SpinnerNumberModel
を持つスピナーを構築します。

スピナーのデータモデルとしてSpinnerNumberModelを使用してスピナーを作成します。このモデルでは整数を選択することができます。

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

JSpinner spinner = new JSpinner();

サンプルプログラム

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

JSpinnerTest1.java

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

public class JSpinnerTest1 extends JFrame{

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

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

  JSpinnerTest1(){
    JSpinner spinner = new JSpinner();

    JPanel p = new JPanel();
    p.add(spinner);

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

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

JSpinnerのサンプル

スピナーは値を表示したり編集するテキストボックスが1つと上下に値を移動させるボタン2つから構成されます。では上のボタンをクリックして下さい。

JSpinnerのサンプル

JSpinnerのサンプル

今回はデータモデルとしてSpinnerNumberModelが使用されていますので、整数の値が選択できるようになっています。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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