タイトル
TOPJavaSwingJSpinner → This Page

JSpinner@Swing サンプル02

概要

Java - Swing - JSpinner のサンプルです。
・SpinnerListModel
・SpinnerNumberModel
・SpinnerDateModel

解説

スピナー1は SpinnerListModel モデル(配列)を使って生成、
スピナー2は初期生成したあとに SpinnerListModel モデル(ベクター)をセット、
スピナー3は SpinnerListModel モデル(リスト)を使って生成、
スピナー4は SpinnerNumberModel モデル(初期値)を使って生成、
スピナー5は SpinnerNumberModel モデル(int型値設定)を使って生成、
スピナー6は SpinnerNumberModel モデル(double型)を使って生成、
スピナー7は SpinnerDateModel モデル(初期値)を使って生成、
スピナー8は SpinnerDateModel モデル(値設定)を使って生成しています。

SpinnerListModel のコンストラクタ
コンストラクタ/説明
SpinnerListModel()
空の SpinnerListModel を生成
SpinnerListModel(List<?> values)
指定された List で値のシーケンスを定義する SpinnerModel を生成
引数引数説明
values List オブジェクト
SpinnerListModel(Object[] values)
指定された配列で値のシーケンスを定義する SpinnerModel を生成
引数引数説明
values 配列オブジェクト

SpinnerNumberModel のコンストラクタ
コンストラクタ/説明
SpinnerNumberModel()
最小値と最大値の値がなく、初期値が 0 、移動量が 1 の SpinnerNumberModel を生成
SpinnerNumberModel(double value, double minimum, double maximum, double stepSize)
指定された初期値・最小値・最大値・移動量 の SpinnerNumberModel を生成
引数引数説明
value 初期値
minimum 最小値
maximum 最大値
stepSize 移動量
SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
指定された初期値・最小値・最大値・移動量 の SpinnerNumberModel を生成
引数引数説明
value 初期値
minimum 最小値
maximum 最大値
stepSize 移動量
SpinnerNumberModel(Number value, Comparable minimum, Comparable maximum, Number stepSize)
指定された初期値・最小値・最大値・移動量 の SpinnerNumberModel を生成
引数引数説明
value 初期値
minimum 最小値
maximum 最大値
stepSize 移動量

SpinnerDateModel のコンストラクタ
コンストラクタ/説明
SpinnerDateModel()
初期値が現在日時、開始値と終了値がなく、移動量が日の SpinnerDateModel を生成
SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
指定された初期値・開始値・終了値・移動量 の SpinnerDateModel を生成
引数引数説明
value 初期値
start 開始値
end 終了値
calendarField 移動量
  • Calendar.ERA
  • Calendar.YEAR
  • Calendar.MONTH
  • Calendar.WEEK_OF_YEAR
  • Calendar.WEEK_OF_MONTH
  • Calendar.DAY_OF_MONTH
  • Calendar.DAY_OF_YEAR
  • Calendar.DAY_OF_WEEK
  • Calendar.DAY_OF_WEEK_IN_MONTH
  • Calendar.AM_PM
  • Calendar.HOUR
  • Calendar.HOUR_OF_DAY
  • Calendar.MINUTE
  • Calendar.SECOND
  • Calendar.MILLISECOND

サンプルイメージ

サンプル画像


サンプルソース

import java.awt.Dimension;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.SpinnerDateModel;
import javax.swing.SpinnerListModel;
import javax.swing.SpinnerNumberModel;

/**
 * JSpinner サンプル02
 * ・SpinnerListModel
 * ・SpinnerNumberModel
 * ・SpinnerDateModel
 * 
 * @author みっちー
 */
public class JSpinner02 extends JFrame {
	
	private static final long serialVersionUID = 1L;
	
	/**
	 * 開始メソッド
	 * 
	 * @param args	パラメータ
	 */
	public static void main(String[] args) {
		JSpinner02 frame = new JSpinner02();
		
		// 閉じるボタンをクリックされた場合の動作を設定
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// ウインドウのタイトルを設定
		frame.setTitle("JSpinner サンプル02");
		
		// フレームの X座標、Y座標、幅、高さを設定
		frame.setBounds(100, 200, 400, 160);
		
		// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
		frame.setVisible(true);
	}
	
	/**
	 * コンストラクタ
	 */
	public JSpinner02() {
		// パネルを作成
		JPanel panelBase = new JPanel();
		
		// 文字列の配列
		String[] dataS = {"11111", "22222", "33333", "44444", "55555"};
		
		// ベクター
		Vector<String> dataV = new Vector<String>();
		dataV.add("aaaaa");
		dataV.add("bbbbb");
		dataV.add("ccccc");
		dataV.add("ddddd");
		dataV.add("eeeee");
		
		// リスト
		ArrayList<String> dataL = new ArrayList<String>();
		dataL.add("AAAAA");
		dataL.add("BBBBB");
		dataL.add("CCCCC");
		dataL.add("DDDDD");
		dataL.add("EEEEE");
		
		// SpinnerListModel
		SpinnerListModel model1 = new SpinnerListModel(dataS);
		SpinnerListModel model2 = new SpinnerListModel(dataV);
		SpinnerListModel model3 = new SpinnerListModel(dataL);
		
		// 日付
		Calendar calendar = Calendar.getInstance();
		calendar.set(2016, 0, 1, 12, 0);
		Date initDate = calendar.getTime();

		calendar.set(2010, 0, 1, 12, 0);
		Date startDate = calendar.getTime();

		calendar.set(2020, 12, 1, 12, 0);
		Date endDate = calendar.getTime();

		// SpinnerNumberModel
		SpinnerNumberModel model4 = new SpinnerNumberModel();
		SpinnerNumberModel model5 = new SpinnerNumberModel(50, 0, 100, 10);
		SpinnerNumberModel model6 = new SpinnerNumberModel(0.5d, 0.0d, 10.0d, 0.1d);
		SpinnerDateModel model7 = new SpinnerDateModel();
		SpinnerDateModel model8 = new SpinnerDateModel(initDate, startDate, endDate, Calendar.HOUR);
		
		// スピナーを生成
		JSpinner spinner1 = new JSpinner(model1);
		JSpinner spinner2 = new JSpinner();
		spinner2.setModel(model2);
		JSpinner spinner3 = new JSpinner(model3);
		JSpinner spinner4 = new JSpinner(model4);
		JSpinner spinner5 = new JSpinner(model5);
		JSpinner spinner6 = new JSpinner(model6);
		JSpinner spinner7 = new JSpinner(model7);
		JSpinner spinner8 = new JSpinner(model8);
		
		// サイズを指定
		spinner1.setPreferredSize(new Dimension(120, 30));
		spinner2.setPreferredSize(new Dimension(120, 30));
		spinner3.setPreferredSize(new Dimension(120, 30));
		spinner4.setPreferredSize(new Dimension(120, 30));
		spinner5.setPreferredSize(new Dimension(120, 30));
		spinner6.setPreferredSize(new Dimension(120, 30));
		spinner7.setPreferredSize(new Dimension(120, 30));
		spinner8.setPreferredSize(new Dimension(120, 30));
		
		// スピナーを追加
		panelBase.add(spinner1);
		panelBase.add(spinner2);
		panelBase.add(spinner3);
		panelBase.add(spinner4);
		panelBase.add(spinner5);
		panelBase.add(spinner6);
		panelBase.add(spinner7);
		panelBase.add(spinner8);
		
		// パネルを追加
		getContentPane().add(panelBase);
	}
}

サンプルソースのダウンロード

ソースのダウンロード(Eclipse用のプロジェクトファイルも同梱)

更新履歴

2016/05/13 新規作成


TOPJavaSwingJSpinner → This Page