Module  java.desktop
软件包  javax.swing

Class JSpinner.DefaultEditor

  • All Implemented Interfaces:
    ImageObserverLayoutManagerMenuContainerPropertyChangeListenerSerializableEventListenerAccessibleChangeListener
    已知直接子类:
    JSpinner.DateEditorJSpinner.ListEditorJSpinner.NumberEditor
    Enclosing class:
    JSpinner


    public static class JSpinner.DefaultEditor
    extends JPanel
    implements ChangeListener, PropertyChangeListener, LayoutManager
    更专业的编辑器的简单基础类,用于显示模型当前值的只读视图,并使用JFormattedTextField 子类可以配置JFormattedTextField创建一个适合于他们支持的模型类型的编辑器,并且他们可能想要覆盖stateChangedpropertyChanged方法,从而使模型和文本字段保持同步。

    这个类定义一个dismiss方法,其去除的编辑ChangeListenerJSpinner ,它的组成部分。 setEditor方法知道DefaultEditor.dismiss ,所以如果开发人员替换从JSpinner.DefaultEditor派生的编辑器,其ChangeListener连接将回到JSpinner将被删除。 然而,之后,由开发人员管理他们的编辑器听众。 类似地,如果子类覆盖createEditorcreateEditor子类来处理他们的编辑器,随后被替换(使用setEditor )。 我们预计在大多数情况下,在编辑器中安装setEditor或由createEditor重写创建,将不会被替换。

    这个班是LayoutManager的单身JFormattedTextField孩子。 默认情况下,孩子只是以父母插图为中心。

    从以下版本开始:
    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 ; 与传递给构造函数的旋转器相同。
      • 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
        另请参见:
        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)
        调整一个(而且只)的孩子,以完全填补父母插图内的区域。
        Specified by:
        layoutContainer在接口 LayoutManager
        参数
        parent - 要布置的容器
      • commitEdit

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

        默认实现在commitEdit上调用JFormattedTextField

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