モジュール java.desktop
パッケージ javax.swing

クラスJSpinner.DefaultEditor

  • すべての実装されたインタフェース:
    ImageObserver, LayoutManager, MenuContainer, PropertyChangeListener, Serializable, EventListener, Accessible, ChangeListener
    直系の既知のサブクラス:
    JSpinner.DateEditor, JSpinner.ListEditor, JSpinner.NumberEditor
    含まれているクラス:
    JSpinner

    public static class JSpinner.DefaultEditor
    extends JPanel
    implements ChangeListener, PropertyChangeListener, LayoutManager
    JFormattedTextFieldを使用してモデルの現在の値の読取り専用ビューを表示する、より特殊なエディタの単純な基底クラスです。 サブクラスは、サポートの対象となるモデルの型に適したエディタを作成するようにJFormattedTextFieldを構成できます。また、モデルとテキスト・フィールドの同期を維持するstateChangedおよびpropertyChangedメソッドをオーバーライドすることもできます。

    このクラスは、エディタChangeListenerを、その一部であるJSpinnerから削除するdismissメソッドを定義します。 setEditorメソッドはDefaultEditor.dismissを認識するため、開発者がJSpinner.DefaultEditorから派生するエディタを置き換える場合、ChangeListenerJSpinnerへの戻りの接続は削除されます。 ただし、そのあとの処理は開発者によるエディタ・リスナーの管理の仕方によって決まります。 同様に、サブクラスがcreateEditorをオーバーライドする場合、置き換えられたあとの処理は、サブクラスがsetEditorを使ってエディタを処理する方法によって決まります。 ほとんどの場合、setEditorによってインストールされたエディタ、またはcreateEditorをオーバーライドして作成されたエディタは、置き換えられることはないと考えられます。

    このクラスは、その単一の子のJFormattedTextField用のLayoutManagerです。 デフォルトでは、子は親のイン・セットとともにただ中央に寄せられます。

    導入されたバージョン:
    1.4
    • コンストラクタの詳細

      • DefaultEditor

        public DefaultEditor​(JSpinner spinner)
        指定されたJSpinner用のエディタ・コンポーネントを構築します。 このDefaultEditorは固有のレイアウト・マネージャであり、スピナーのChangeListenerリストに追加されます。 コンストラクタは、単一の子のJFormattedTextFieldを作成し、その値をスピナー・モデルの現在の値に初期化し、さらに、この DefaultEditorに追加します。
        パラメータ:
        spinner - このエディタが監視するスピナー・モデル
        関連項目:
        getTextField(), JSpinner.addChangeListener(javax.swing.event.ChangeListener)
    • メソッドの詳細

      • dismiss

        public void dismiss​(JSpinner spinner)
        このエディタを指定されたJSpinnerから切り離します。 デフォルトでは、このメソッドは、自らスピナーのChangeListenerリストから削除します。
        パラメータ:
        spinner - このエディタを切り離すJSpinner。コンストラクタに渡されたスピナーと同じ。
      • getSpinner

        public JSpinner getSpinner()
        このエディタの上位クラスJSpinnerか、上位クラスにJSpinnerが存在しない場合はnullを返します。 通常、エディタの親はJSpinnerですが、JSpinnerのサブクラスはcreateEditorメソッドをオーバーライドして、JSpinnerとそのエディタの間に1つまたは複数のコンテナを挿入することがあります。
        戻り値:
        上位クラスJSpinner。上位クラスにJSpinnerが存在しない場合はnull
        関連項目:
        JSpinner.createEditor(javax.swing.SpinnerModel)
      • getTextField

        public JFormattedTextField getTextField()
        このエディタの子であるJFormattedTextFieldを返します。 デフォルトでは、テキスト・フィールドはエディタの最初で唯一の子になります。
        戻り値:
        ユーザーにSpinnerDateModelの値へのアクセスを許可するJFormattedTextField
        関連項目:
        getSpinner(), JSpinner.getModel()
      • stateChanged

        public void stateChanged​(ChangeEvent e)
        このメソッドは、スピナーのモデルの状態が変わったときに呼び出されます。 テキスト・フィールドのvalueを、スピナー・モデルの現在の値に設定します。
        定義:
        stateChanged、インタフェース: ChangeListener
        パラメータ:
        e - モデルが変更されたJSpinnerをソースに持つChangeEvent
        関連項目:
        getTextField(), JSpinner.getValue()
      • propertyChange

        public void propertyChange​(PropertyChangeEvent e)
        JFormattedTextFieldPropertyChangeListenerによって呼び出されます。 "value"プロパティが変わったとき(つまりユーザーが新しい数を入力したことを意味する)、スピナー・モデルの値を設定します。

        このクラスは、ソースがJFormattedTextFieldではないPropertyChangeEventsを無視します。したがって、サブクラスはこの DefaultEditorを、安全にほかのオブジェクトのPropertyChangeListenerにすることができます。

        定義:
        propertyChange、インタフェース: PropertyChangeListener
        パラメータ:
        e - このクラスによって作成されたJFormattedTextFieldをソースに持つPropertyChangeEvent
        関連項目:
        getTextField()
      • addLayoutComponent

        public void addLayoutComponent​(String name,
                                       Component child)
        このLayoutManagerメソッドは何も行いません。 単一の子を管理するだけで、レイアウトの制約に対するサポートはありません。
        定義:
        addLayoutComponent、インタフェース: LayoutManager
        パラメータ:
        name - 無視される
        child - 無視される
      • removeLayoutComponent

        public void removeLayoutComponent​(Component child)
        このLayoutManagerメソッドは何も行いません。 子ごとの状態はありません。
        定義:
        removeLayoutComponent、インタフェース: LayoutManager
        パラメータ:
        child - 無視される
      • layoutContainer

        public void layoutContainer​(Container parent)
        唯一の子が親イン・セット内の領域に完全に収まるようにサイズを変更します。
        定義:
        layoutContainer、インタフェース: LayoutManager
        パラメータ:
        parent - レイアウトされるコンテナ
      • commitEdit

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

        デフォルトの実装はJFormattedTextFieldcommitEditを呼び出します。

        例外:
        ParseException - 編集された値が不正の場合
      • getBaseline

        public int getBaseline​(int width,
                               int height)
        ベースラインを返します。
        オーバーライド:
        getBaseline 、クラス:  JComponent
        パラメータ:
        width - ベースラインを取得する幅
        height - ベースラインを取得する高さ
        戻り値:
        ベースラインまたは0より小さい値(適切なベースラインがないことを示す)
        例外:
        IllegalArgumentException - 幅または高さが0より小さい場合
        導入されたバージョン:
        1.6
        関連項目:
        JComponent.getBaseline(int,int), JComponent.getBaselineResizeBehavior()