JavaTM 2 Platform
Standard Ed. 5.0

javax.swing
クラス JSpinner

java.lang.Object
  上位を拡張 java.awt.Component
      上位を拡張 java.awt.Container
          上位を拡張 javax.swing.JComponent
              上位を拡張 javax.swing.JSpinner
すべての実装されたインタフェース:
ImageObserver, MenuContainer, Serializable, Accessible

public class JSpinner
extends JComponent
implements Accessible

ユーザが、順序付けられたシーケンスから数またはオブジェクトを選択できるようにする単一行の入力フィールドです。通常、スピナーはシーケンスの要素間を移動するための小さな矢印ボタンのペアを提供します。キーボードの上/下矢印キーでも要素間を自由に移動できます。ユーザがスピナーに直接 (有効な) 値を入力することもできます。コンボボックスは類似の機能を提供しますが、重要なデータを覆い隠してしまうドロップダウンリストを必要としないため、スピナーのほうが好まれる場合があります。

JSpinner のシーケンスの値は、SpinnerModel によって定義されます。model は、コンストラクタの引数として指定し、model プロパティを使用して変更できます。一部の共通の型として、SpinnerListModelSpinnerNumberModel、および SpinnerDateModel などの SpinnerModel クラスが提供されます。

JSpinner は、モデルの現在の要素または「値」を表示し、変更も扱う単一の子コンポーネントを持ちます。これは editor と呼ばれます。エディタは、JSpinner のコンストラクタによって作成され、editor プロパティによって変更できます。JSpinner のエディタは、ChangeEvent を待機することにより、モデルとの同期を維持します。ユーザが editor によって表示された値を変更すると、model の値と editor の値が異なってしまう可能性があります。model の値がエディタの値と同じかどうかを確認するには、commitEdit メソッドを使用します。次に例を示します。


   try {
       spinner.commitEdit();
   }
   catch (ParseException pe) {{
       // Edited value is invalid, spinner.getValue() will return
       // the last valid value, you could revert the spinner to show that:
       JComponent editor = spinner.getEditor()
       if (editor instanceof DefaultEditor) {
           ((DefaultEditor)editor).getTextField().setValue(spinner.getValue();
       }
       // reset the value to some known value:
       spinner.setValue(fallbackValue);
       // or treat the last valid value as the current, in which
       // case you don't need to do anything.
   }
   return spinner.getValue();
 

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

導入されたバージョン:
1.4
関連項目:
SpinnerModel, AbstractSpinnerModel, SpinnerListModel, SpinnerNumberModel, SpinnerDateModel, JFormattedTextField

入れ子のクラスの概要
protected  class JSpinner.AccessibleJSpinner
          AccessibleJSpinnerJSpinner クラス用のユーザ補助機能のサポートを実装します。
static class JSpinner.DateEditor
          モデルを SpinnerDateModel とする JSpinner 用のエディタです。
static class JSpinner.DefaultEditor
          特殊なエディタ用の簡単な基底クラスです。
static class JSpinner.ListEditor
          モデルが SpinnerListModelJSpinner 用のエディタです。
static class JSpinner.NumberEditor
          モデルが SpinnerNumberModelJSpinner 用のエディタです。
 
クラス javax.swing.JComponent から継承された入れ子のクラス/インタフェース
JComponent.AccessibleJComponent
 
クラス java.awt.Container から継承された入れ子のクラス/インタフェース
Container.AccessibleAWTContainer
 
クラス java.awt.Component から継承された入れ子のクラス/インタフェース
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
フィールドの概要
 
クラス javax.swing.JComponent から継承されたフィールド
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
クラス java.awt.Component から継承されたフィールド
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
インタフェース java.awt.image.ImageObserver から継承されたフィールド
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
コンストラクタの概要
JSpinner()
          初期値が 0 で最小値または最大値の制限がない Integer SpinnerNumberModel を持つスピナーを構築します。
JSpinner(SpinnerModel model)
          次へ進むおよび前に戻るボタンのペアと SpinnerModel 用のエディタを持つ完全なスピナーを構築します。
 
メソッドの概要
 void addChangeListener(ChangeListener listener)
          リスナーを、モデルへの変更が行われるたびに通知されるリストに追加します。
 void commitEdit()
          現在編集されている値を SpinnerModel に確定します。
protected  JComponent createEditor(SpinnerModel model)
          このメソッドは、シーケンスの現在の値を表示する JComponent を作成するために、コンストラクタによって呼び出されます。
protected  void fireStateChanged()
          この JSpinner のソースを保持する ChangeEvent を各 ChangeListener に送信します。
 AccessibleContext getAccessibleContext()
          JSpinnerAccessibleContext を取得します。
 ChangeListener[] getChangeListeners()
          addChangeListener() を使用して、この JSpinner に追加されたすべての ChangeListener の配列を返します。
 JComponent getEditor()
          モデルの値を表示し、変更もできるコンポーネントを返します。
 SpinnerModel getModel()
          このスピナーの値のシーケンスを定義する SpinnerModel 返します。
 Object getNextValue()
          getValue() によって返されたオブジェクトの後にあるシーケンスのオブジェクトを返します。
 Object getPreviousValue()
          getValue() によって返されたオブジェクトの前にあるシーケンスのオブジェクトを返します。
 SpinnerUI getUI()
          このコンポーネントを描画する Look & Feel (L&F) オブジェクトを返します。
 String getUIClassID()
          Look & Feel (L&F) クラスの名前の構築に使用された接頭辞を返します。
 Object getValue()
          モデルの現在の値を返します。
 void removeChangeListener(ChangeListener listener)
          このスピナーから ChangeListener を削除します。
 void setEditor(JComponent editor)
          SpinnerModel の現在の値を表示する JComponent を変更します。
 void setModel(SpinnerModel model)
          このスピナーの値を表すモデルを変更します。
 void setUI(SpinnerUI ui)
          このコンポーネントを描画する Look & Feel (L&F) オブジェクトを設定します。
 void setValue(Object value)
          モデルの現在の値を変更します。
 void updateUI()
          現在の Look & Feel からの値を持つ UI プロパティをリセットします。
 
クラス javax.swing.JComponent から継承されたメソッド
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
クラス java.awt.Container から継承されたメソッド
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
クラス java.awt.Component から継承されたメソッド
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

JSpinner

public JSpinner(SpinnerModel model)
次へ進むおよび前に戻るボタンのペアと SpinnerModel 用のエディタを持つ完全なスピナーを構築します。


JSpinner

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

メソッドの詳細

getUI

public SpinnerUI getUI()
このコンポーネントを描画する Look & Feel (L&F) オブジェクトを返します。

戻り値:
このコンポーネントを描画する SpinnerUI オブジェクト

setUI

public void setUI(SpinnerUI ui)
このコンポーネントを描画する Look & Feel (L&F) オブジェクトを設定します。

パラメータ:
ui - SpinnerUI L&F オブジェクト
関連項目:
UIDefaults.getUI(javax.swing.JComponent)

getUIClassID

public String getUIClassID()
Look & Feel (L&F) クラスの名前の構築に使用された接頭辞を返します。このクラスは、このコンポーネントを描画するのに使用されます。

オーバーライド:
クラス JComponent 内の getUIClassID
戻り値:
文字列「SpinnerUI」
関連項目:
JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

updateUI

public void updateUI()
現在の Look & Feel からの値を持つ UI プロパティをリセットします。

オーバーライド:
クラス JComponent 内の updateUI
関連項目:
UIManager.getUI(javax.swing.JComponent)

createEditor

protected JComponent createEditor(SpinnerModel model)
このメソッドは、シーケンスの現在の値を表示する JComponent を作成するために、コンストラクタによって呼び出されます。また、エディタを使用することにより、ユーザはシーケンスの要素を直接入力することが可能になります。エディタは modelChangeEvents を待機し、表示する値がモデルの値と同期するように維持する必要があります。

サブクラスは、このメソッドをオーバーライドして、新しい SpinnerModel クラスのサポートを追加します。また、ここで作成されたエディタを、単に setEditor メソッドと置き換えることもできます。モデル型からエディタへのデフォルトのマッピングは、次のとおりです。

パラメータ:
model - getModel の値
戻り値:
シーケンスの現在の値を表示するコンポーネント
関連項目:
getModel(), setEditor(javax.swing.JComponent)

setModel

public void setModel(SpinnerModel model)
このスピナーの値を表すモデルを変更します。エディタのプロパティが明示的に設定されていない場合、エディタのプロパティは "model" PropertyChangeEvent がトリガされたあとで暗黙の内に設定されます。エディタのプロパティは、次のように createEditor によって返された値に設定されます。

setEditor(createEditor(model));
 

パラメータ:
model - 新しい SpinnerModel
例外:
IllegalArgumentException - モデルが null の場合
関連項目:
getModel(), getEditor(), setEditor(javax.swing.JComponent)

getModel

public SpinnerModel getModel()
このスピナーの値のシーケンスを定義する SpinnerModel 返します。

戻り値:
モデルのプロパティの値
関連項目:
setModel(javax.swing.SpinnerModel)

getValue

public Object getValue()
モデルの現在の値を返します。通常、この値は editor によって表示されます。ユーザが editor によって表示された値を変更すると、model の値と editor の値が異なってしまう可能性があります。この問題の対処方法の例については、クラスレベルの javadoc を参照してください。

このメソッドは単に model に委譲されます。これは次の場合と同等です。


getModel().getValue()
 

関連項目:
setValue(java.lang.Object), SpinnerModel.getValue()

setValue

public void setValue(Object value)
モデルの現在の値を変更します。通常、この値は editor によって表示されます。SpinnerModel の実装が指定された値をサポートしない場合は、IllegalArgumentException がスローされます。

このメソッドは単に model に委譲されます。これは次の場合と同等です。


getModel().setValue(value)
 

例外:
IllegalArgumentException - value が正当でない場合
関連項目:
getValue(), SpinnerModel.setValue(java.lang.Object)

getNextValue

public Object getNextValue()
getValue() によって返されたオブジェクトの後にあるシーケンスのオブジェクトを返します。シーケンスの終点に到達した場合、null を返します。このメソッドの呼び出しは value に影響を与えません。

このメソッドは単に model に委譲されます。これは次の場合と同等です。


getModel().getNextValue()
 

戻り値:
次の正当な値。存在しない場合は null
関連項目:
getValue(), getPreviousValue(), SpinnerModel.getNextValue()

addChangeListener

public void addChangeListener(ChangeListener listener)
リスナーを、モデルへの変更が行われるたびに通知されるリストに追加します。ChangeListeners に送信された ChangeEvents のソースはこの JSpinner です。モデルの置き換えは Jspinner に直接追加されたリスナーに影響を与えないことにも注意してください。アプリケーションは、リスナーをモデルに直接追加できます。この場合は、イベントのソースは SpinnerModel となります。

パラメータ:
listener - 追加する ChangeListener
関連項目:
removeChangeListener(javax.swing.event.ChangeListener), getModel()

removeChangeListener

public void removeChangeListener(ChangeListener listener)
このスピナーから ChangeListener を削除します。

パラメータ:
listener - 削除する ChangeListener
関連項目:
fireStateChanged(), addChangeListener(javax.swing.event.ChangeListener)

getChangeListeners

public ChangeListener[] getChangeListeners()
addChangeListener() を使用して、この JSpinner に追加されたすべての ChangeListener の配列を返します。

戻り値:
追加されたすべての ChangeListener、またはリスナーが追加されていない場合は空の配列
導入されたバージョン:
1.4

fireStateChanged

protected void fireStateChanged()
この JSpinner のソースを保持する ChangeEvent を各 ChangeListener に送信します。ChangeListener がスピナーに追加されている場合、モデルから ChangeEvent を受け取るたびに、このメソッドが呼び出されます。

関連項目:
addChangeListener(javax.swing.event.ChangeListener), removeChangeListener(javax.swing.event.ChangeListener), EventListenerList

getPreviousValue

public Object getPreviousValue()
getValue() によって返されたオブジェクトの前にあるシーケンスのオブジェクトを返します。シーケンスの終点に到達した場合、null を返します。このメソッドの呼び出しは value に影響を与えません。

このメソッドは単に model に委譲されます。これは次の場合と同等です。


getModel().getPreviousValue()
 

戻り値:
以前の正当な値。存在しない場合は null
関連項目:
getValue(), getNextValue(), SpinnerModel.getPreviousValue()

setEditor

public void setEditor(JComponent editor)
SpinnerModel の現在の値を表示する JComponent を変更します。このメソッドにより、古いエディタがモデルから切り離され、新しいエディタが接続されます。これは、古いエディタの ChangeListener をモデルまたはスピナー自体から削除して、新しいエディタの変更リスナーを追加することを意味します。

パラメータ:
editor - 新しいエディタ
例外:
IllegalArgumentException - エディタが null の場合
関連項目:
getEditor(), createEditor(javax.swing.SpinnerModel), getModel()

getEditor

public JComponent getEditor()
モデルの値を表示し、変更もできるコンポーネントを返します。

戻り値:
モデルの値を表示し、変更もできるコンポーネント
関連項目:
setEditor(javax.swing.JComponent), createEditor(javax.swing.SpinnerModel)

commitEdit

public void commitEdit()
                throws ParseException
現在編集されている値を SpinnerModel に確定します。

エディタが DefaultEditor のインスタンスの場合、エディタに転送されたときは呼び出しを行い、それ以外のときは何も処理を行いません。

例外:
ParseException - 現在編集されている値が確定できなかった場合

getAccessibleContext

public AccessibleContext getAccessibleContext()
JSpinnerAccessibleContext を取得します。

定義:
インタフェース Accessible 内の getAccessibleContext
オーバーライド:
クラス JComponent 内の getAccessibleContext
戻り値:
JSpinner の AccessibleContext
導入されたバージョン:
1.5

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。