Module java.desktop
Package javax.swing

Class 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以创建适合其支持的模型类型的编辑器,并且可能需要覆盖stateChangedpropertyChanged方法,以保持模型和文本字段同步。

此类定义了一个dismiss方法,从其所属的JSpinner中移除编辑器的ChangeListenersetEditor方法知道关于DefaultEditor.dismiss,因此如果开发人员替换了一个派生自JSpinner.DefaultEditor的编辑器,其ChangeListener连接回到JSpinner将被移除。但是在那之后,开发人员需要管理他们的编辑器监听器。类似地,如果子类覆盖了createEditor,则子类需要处理其编辑器随后被替换(使用setEditor)。我们期望在大多数情况下,通过setEditor安装的编辑器或由createEditor覆盖创建的编辑器将不会被替换。

此类是其单个JFormattedTextField子级的LayoutManager。默认情况下,子级只是与父级的插图居中。

自1.4版本起:
1.4
  • Constructor Details

    • DefaultEditor

      public DefaultEditor(JSpinner spinner)
      为指定的JSpinner构造一个编辑器组件。此DefaultEditor是其自身的布局管理器,并添加到微调器的ChangeListener列表中。构造函数创建一个单个的JFormattedTextField子级,将其值初始化为微调器模型的当前值,并将其添加到this DefaultEditor中。
      参数:
      spinner - 将监视this编辑器的微调器模型
      另请参阅:
  • Method Details

    • dismiss

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

      public JSpinner getSpinner()
      返回此编辑器的JSpinner祖先,如果没有祖先是JSpinner,则返回null。通常,编辑器的父级是一个JSpinner,但是JSpinner的子类可能会覆盖createEditor方法,并在JSpinner和其编辑器之间插入一个或多个容器。
      返回:
      JSpinner祖先;如果没有祖先是JSpinner,则返回null
      另请参阅:
    • getTextField

      public JFormattedTextField getTextField()
      返回此编辑器的JFormattedTextField子级。默认情况下,文本字段是编辑器的第一个且唯一的子级。
      返回:
      提供用户访问SpinnerDateModel值的JFormattedTextField
      另请参阅:
    • stateChanged

      public void stateChanged(ChangeEvent e)
      当微调器的模型状态更改时调用此方法。将文本字段的value设置为微调器模型的当前值。
      指定者:
      stateChanged 在接口 ChangeListener
      参数:
      e - 其源为已更改模型的JSpinnerChangeEvent
      另请参阅:
    • propertyChange

      public void propertyChange(PropertyChangeEvent e)
      JFormattedTextFieldPropertyChangeListener调用。当"value"属性更改时,这意味着用户已键入新数字,我们将微调器模型的值设置为值。

      此类忽略源不是JFormattedTextFieldPropertyChangeEvents,因此子类可以安全地将this DefaultEditor设置为其他对象的PropertyChangeListener

      指定者:
      propertyChange 在接口 PropertyChangeListener
      参数:
      e - 其源为此类创建的JFormattedTextFieldPropertyChangeEvent
      另请参阅:
    • addLayoutComponent

      public void addLayoutComponent(String name, Component child)
      LayoutManager方法不执行任何操作。我们只管理一个单个子级,不支持布局约束。
      指定者:
      addLayoutComponent 在接口 LayoutManager
      参数:
      name - 忽略
      child - 忽略
    • removeLayoutComponent

      public void removeLayoutComponent(Component child)
      LayoutManager方法不执行任何操作。没有每个子级的状态。
      指定者:
      removeLayoutComponent 在接口 LayoutManager
      参数:
      child - 忽略
    • preferredLayoutSize

      public Dimension preferredLayoutSize(Container parent)
      返回第一个(唯一的)子级的首选大小加上父级插图的大小。
      指定者:
      preferredLayoutSize 在接口 LayoutManager
      参数:
      parent - 管理布局的容器
      返回:
      用于布置指定容器的子组件的首选尺寸。
      另请参阅:
    • minimumLayoutSize

      public Dimension minimumLayoutSize(Container parent)
      返回第一个(唯一的)子级的最小大小加上父级插图的大小。
      指定者:
      minimumLayoutSize 在接口 LayoutManager
      参数:
      parent - 管理布局的容器
      返回值:
      需要布局指定容器的子组件的最小尺寸。
      参见:
    • layoutContainer

      public void layoutContainer(Container parent)
      将一个(唯一的)子组件调整大小以完全填充父容器内边距的区域。
      指定者:
      layoutContainer 在接口 LayoutManager
      参数:
      parent - 要布局的容器
    • commitEdit

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

      默认实现会在JFormattedTextField上调用commitEdit

      抛出:
      ParseException - 如果编辑的值不合法
    • getBaseline

      public int getBaseline(int width, int height)
      返回基线。
      覆盖:
      getBaseline 在类 JComponent
      参数:
      width - 获取基线的宽度
      height - 获取基线的高度
      返回值:
      基线或< 0表示没有合理的基线
      抛出:
      IllegalArgumentException - 如果宽度或高度< 0
      自从:
      1.6
      参见:
    • getBaselineResizeBehavior

      public Component.BaselineResizeBehavior getBaselineResizeBehavior()
      返回一个枚举,指示组件的基线随尺寸变化而变化的方式。
      覆盖:
      getBaselineResizeBehavior 在类 JComponent
      返回值:
      一个枚举,指示组件尺寸变化时基线的变化方式
      自从:
      1.6
      参见: