模块  java.desktop
软件包  javax.swing

Class JSpinner.DefaultEditor

  • 实现的所有接口
    ImageObserverLayoutManagerMenuContainerPropertyChangeListenerSerializableEventListenerAccessibleChangeListener
    已知直接子类:
    JSpinner.DateEditorJSpinner.ListEditorJSpinner.NumberEditor
    Enclosing class:
    JSpinner

    public static class JSpinner.DefaultEditor
    extends JPanel
    implements ChangeListener, PropertyChangeListener, LayoutManager
    用于更专业的编辑器的简单基类,它使用JFormattedTextField显示模型当前值的JFormattedTextField 子类可以将JFormattedTextField配置为创建适合于它们支持的模型类型的编辑器,并且它们可能希望覆盖stateChangedpropertyChanged方法,这样可以使模型和文本字段保持同步。

    这个类定义一个dismiss方法,其去除的编辑ChangeListenerJSpinner ,它的组成部分。 setEditor方法知道大约DefaultEditor.dismiss ,因此如果开发人员替换从JSpinner.DefaultEditor派生的编辑器, JSpinner.DefaultEditorChangeListener连接回JSpinner 然而,在此之后,由开发人员来管理他们的编辑器监听器。 类似地,如果一个子类重写createEditorcreateEditor子文章处理其编辑器随后被替换(使用setEditor )。 我们希望在大多数情况下,以及使用setEditor安装的编辑器或由createEditor覆盖创建的编辑器,无论如何都不会被替换。

    这个班是LayoutManager为它的单个JFormattedTextField孩子。 默认情况下,子项仅以父项insets为中心。

    从以下版本开始:
    1.4
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • DefaultEditor

        public DefaultEditor​(JSpinner spinner)
        构造指定的JSpinner的编辑器组件。 这个DefaultEditor是它自己的布局管理器,它被添加到微调器的ChangeListener列表中。 构造函数创建一个单一JFormattedTextField孩子,初始化它的价值是微调模型的当前值,并将其添加到this DefaultEditor
        参数
        spinner - 模型 this编辑器将监视的微调器
        另请参见:
        getTextField()JSpinner.addChangeListener(javax.swing.event.ChangeListener)
    • 方法详细信息

      • dismiss

        public void dismiss​(JSpinner spinner)
        从指定的JSpinner断开this编辑器。 默认情况下,此方法将自己从微调器ChangeListener列表中删除。
        参数
        spinner - 要断开此编辑器的JSpinner ; 与传递给构造函数的spinner相同。
      • getSpinner

        public JSpinner getSpinner()
        如果没有祖先是null则返回此编辑器的JSpinner祖先或JSpinner 典型地,所述编辑器的父是JSpinner然而的子类JSpinner可重写的createEditor方法和插入之间的一个或多个容器JSpinner ,它的编辑。
        结果
        JSpinner祖先; null如果没有祖先是JSpinner
        另请参见:
        JSpinner.createEditor(javax.swing.SpinnerModel)
      • getTextField

        public JFormattedTextField getTextField()
        返回此编辑器的JFormattedTextField子级。 默认情况下,文本字段是编辑器的第一个也是唯一的子节点。
        结果
        JFormattedTextField ,允许用户访问 SpinnerDateModel's值。
        另请参见:
        getSpinner()JSpinner.getModel()
      • stateChanged

        public void stateChanged​(ChangeEvent e)
        当微调器的模型状态发生变化时,将调用此方法。 它将文本字段的value设置为微调器模型的当前值。
        Specified by:
        stateChanged在界面 ChangeListener
        参数
        e - ChangeEvent其源为 JSpinner其型号已更改。
        另请参见:
        getTextField()JSpinner.getValue()
      • propertyChange

        public void propertyChange​(PropertyChangeEvent e)
        JFormattedTextField PropertyChangeListener调用。 "value"属性发生更改(这意味着用户键入了新数字)时,我们设置了微调器模型的值。

        这个类忽略PropertyChangeEvents ,其来源不是JFormattedTextField ,这样子类可以安全地进行this DefaultEditor一个PropertyChangeListener其他物体上。

        Specified by:
        propertyChange在界面 PropertyChangeListener
        参数
        e - PropertyChangeEvent其源是 JFormattedTextField创建的 JFormattedTextField
        另请参见:
        getTextField()
      • addLayoutComponent

        public void addLayoutComponent​(String name,
                                       Component child)
        这个LayoutManager方法什么都不做。 我们只管理一个孩子,并且不支持布局限制。
        Specified by:
        addLayoutComponent在界面 LayoutManager
        参数
        name - 被忽略了
        child - 被忽略了
      • removeLayoutComponent

        public void removeLayoutComponent​(Component child)
        这个LayoutManager方法什么都不做。 没有任何每个孩子的州。
        Specified by:
        removeLayoutComponent在界面 LayoutManager
        参数
        child - 被忽略
      • layoutContainer

        public void layoutContainer​(Container parent)
        调整一个(也是唯一一个)子项的大小以完全填充父项insets中的区域。
        Specified by:
        layoutContainer在界面 LayoutManager
        参数
        parent - 要布置的容器
      • commitEdit

        public void commitEdit()
                        throws ParseException
        将当前编辑的值推送到SpinnerModel

        默认实现在commitEdit上调用JFormattedTextField

        异常
        ParseException - 如果编辑的值不合法