Module java.desktop
Package javax.swing.text

Class WrappedPlainView

所有已实现的接口:
SwingConstants, TabExpander

public class WrappedPlainView extends BoxView implements TabExpander
纯文本视图(只有一种字体和颜色的文本)的视图,支持自动换行。该视图期望其关联的元素具有代表应该换行的行的子元素。它被实现为一个包含逻辑行视图的垂直框,逻辑行视图是渲染逻辑行的嵌套类,如果逻辑行太宽而无法适应分配,则将逻辑行渲染为多个物理行。行视图利用外部类的状态来减少其内存需求。

行视图通过drawLine方法进行所有渲染,该方法又通过drawSelectedTextdrawUnselectedText方法进行所有渲染。这使得子类可以轻松地专门化渲染而不必考虑布局方面的问题。

参见:
  • Constructor Details

    • WrappedPlainView

      public WrappedPlainView(Element elem)
      创建一个新的WrappedPlainView。行将根据字符边界换行。
      参数:
      elem - 视图下的元素
    • WrappedPlainView

      public WrappedPlainView(Element elem, boolean wordWrap)
      创建一个新的WrappedPlainView。行可以根据wordWrap参数的设置在字符边界或单词边界上换行。
      参数:
      elem - 视图下的元素
      wordWrap - 行是否应在单词边界上换行?
  • Method Details

    • getTabSize

      protected int getTabSize()
      返回为文档设置的制表符大小,默认为8。
      返回:
      制表符大小
    • drawLine

      @Deprecated(since="9") protected void drawLine(int p0, int p1, Graphics g, int x, int y)
      渲染一行文本,忽略末尾的空格并展开任何制表符。此方法实现为调用drawUnselectedTextdrawSelectedText方法,以便可以自定义选定文本和未选定文本的渲染方式。
      参数:
      p0 - 要使用的起始文档位置 >= 0
      p1 - 要使用的结束文档位置 >= p1
      g - 图形上下文
      x - 起始X位置 >= 0
      y - 起始Y位置 >= 0
      参见:
    • drawLine

      protected void drawLine(int p0, int p1, Graphics2D g, float x, float y)
      渲染一行文本,忽略末尾的空格并展开任何制表符。此方法实现为调用drawUnselectedTextdrawSelectedText方法,以便可以自定义选定文本和未选定文本的渲染方式。
      参数:
      p0 - 要使用的起始文档位置 >= 0
      p1 - 要使用的结束文档位置 >= p1
      g - 图形上下文
      x - 起始X位置 >= 0
      y - 起始Y位置 >= 0
      自JDK 9起:
      9
      参见:
    • drawUnselectedText

      @Deprecated(since="9") protected int drawUnselectedText(Graphics g, int x, int y, int p0, int p1) throws BadLocationException
      渲染模型中给定范围的文本作为普通未选定文本。
      参数:
      g - 图形上下文
      x - 起始X坐标 >= 0
      y - 起始Y坐标 >= 0
      p0 - 模型中的起始位置 >= 0
      p1 - 模型中的结束位置 >= p0
      返回:
      范围结束的X位置 >= 0
      抛出:
      BadLocationException - 如果范围无效
    • drawUnselectedText

      protected float drawUnselectedText(Graphics2D g, float x, float y, int p0, int p1) throws BadLocationException
      渲染模型中给定范围的文本作为普通未选定文本。
      参数:
      g - 图形上下文
      x - 起始X坐标 >= 0
      y - 起始Y坐标 >= 0
      p0 - 模型中的起始位置 >= 0
      p1 - 模型中的结束位置 >= p0
      返回:
      范围结束的X位置 >= 0
      抛出:
      BadLocationException - 如果范围无效
      自JDK 9起:
      9
    • drawSelectedText

      @Deprecated(since="9") protected int drawSelectedText(Graphics g, int x, int y, int p0, int p1) throws BadLocationException
      渲染模型中给定范围的文本作为选定文本。此方法实现为以主机组件中指定的颜色渲染文本。它假定高亮器将渲染选定的背景。
      参数:
      g - 图形上下文
      x - 起始X坐标 >= 0
      y - 起始Y坐标 >= 0
      p0 - 模型中的起始位置 >= 0
      p1 - 模型中的结束位置 >= p0
      返回:
      范围结束的位置。
      抛出:
      BadLocationException - 如果范围无效
    • drawSelectedText

      protected float drawSelectedText(Graphics2D g, float x, float y, int p0, int p1) throws BadLocationException
      渲染模型中给定范围的文本作为选定文本。此方法实现为以主机组件中指定的颜色渲染文本。它假定高亮器将渲染选定的背景。
      参数:
      g - 图形上下文
      x - 起始X坐标 >= 0
      y - 起始Y坐标 >= 0
      p0 - 模型中的起始位置 >= 0
      p1 - 模型中的结束位置 >= p0
      返回:
      范围结束的位置。
      抛出:
      BadLocationException - 如果范围无效
      自JDK 9起:
      9
    • getLineBuffer

      protected final Segment getLineBuffer()
      提供可用于从关联文档中提取文本的缓冲区。
      返回:
      缓冲区
    • calculateBreakPosition

      protected int calculateBreakPosition(int p0, int p1)
      嵌套的包装行视图调用此方法以确定断点位置。可以重新实现此方法以更改断点行为。它将根据在构造时给定的断点参数在单词边界或字符边界处断开。
      参数:
      p0 - 起始文档位置
      p1 - 要使用的结束文档位置
      返回:
      断点位置
    • loadChildren

      protected void loadChildren(ViewFactory f)
      加载所有子项以初始化视图。此方法由setParent方法调用。子类可以重新实现此方法以不同的方式初始化其子视图。默认实现为每个子元素创建一个子视图。
      覆盖:
      loadChildren 在类 CompositeView
      参数:
      f - 视图工厂
      参见:
    • nextTabStop

      public float nextTabStop(float x, int tabOffset)
      返回给定参考位置后的下一个制表位位置。此实现不支持居中等功能,因此会忽略tabOffset参数。
      指定者:
      nextTabStop 在接口 TabExpander
      参数:
      x - 当前位置 >= 0
      tabOffset - 文本流中制表符出现的位置 >= 0
      返回:
      制表位,以点为单位 >= 0
    • paint

      public void paint(Graphics g, Shape a)
      使用给定的渲染表面和该表面上的区域进行渲染。这是为了存储选择位置、选择颜色和字体度量,以供嵌套行使用。
      覆盖:
      paint 在类 BoxView
      参数:
      g - 要使用的渲染表面
      a - 要渲染到的分配区域
      参见:
    • setSize

      public void setSize(float width, float height)
      设置视图的大小。如果视图有任何布局任务,这应该导致沿着给定轴的视图布局。
      覆盖:
      setSize 在类 BoxView
      参数:
      width - 宽度 >= 0
      height - 高度 >= 0
    • getPreferredSpan

      public float getPreferredSpan(int axis)
      确定此视图沿轴的首选跨度。这是为了在首先确保缓存当前字体度量之后提供超类行为(用于使用度量确定可能换行行的高度的嵌套行)。
      覆盖:
      getPreferredSpan 在类 BoxView
      参数:
      axis - 可能是View.X_AXIS或View.Y_AXIS
      返回:
      视图希望被渲染到的跨度。通常告诉视图渲染返回的跨度,尽管不能保证。父级可能选择调整或分割视图。
      参见:
    • getMinimumSpan

      public float getMinimumSpan(int axis)
      确定此视图沿轴的最小跨度。这是为了在首先确保缓存当前字体度量之后提供超类行为(用于使用度量确定可能换行行的高度的嵌套行)。
      覆盖:
      getMinimumSpan 在类 BoxView
      参数:
      axis - 可能是View.X_AXIS或View.Y_AXIS
      返回:
      视图希望被渲染到的跨度。通常告诉视图渲染返回的跨度,尽管不能保证。父级可能选择调整或分割视图。
      参见:
    • getMaximumSpan

      public float getMaximumSpan(int axis)
      确定此视图沿轴的最大跨度。这是为了在首先确保缓存当前字体度量之后提供超类行为(用于使用度量确定可能换行行的高度的嵌套行)。
      覆盖:
      getMaximumSpan 在类 BoxView
      参数:
      axis - 可能是View.X_AXIS或View.Y_AXIS
      返回:
      视图希望被渲染到的跨度。通常告诉视图渲染返回的跨度,尽管不能保证。父级可能选择调整或分割视图。
      参见:
    • insertUpdate

      public void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
      通知在文档中插入了此视图负责的位置。这是为了简单地更新子项。
      覆盖:
      insertUpdate 在类 View
      参数:
      e - 关联文档的更改信息
      a - 视图的当前分配
      f - 如果视图有子项,则用于重建的工厂
      参见:
    • removeUpdate

      public void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
      通知从文档中删除了此视图负责的位置。这是为了简单地更新子项。
      覆盖:
      removeUpdate 在类 View
      参数:
      e - 关联文档的更改信息
      a - 视图的当前分配
      f - 如果视图有子项,则用于重建的工厂
      参见:
    • changedUpdate

      public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
      从文档中发出通知,指示此视图负责的位置的属性已更改。
      覆盖:
      changedUpdate 在类 View
      参数:
      e - 关联文档的更改信息
      a - 视图的当前分配
      f - 如果视图有子项,则用于重建的工厂
      参见: