所有类


javax.swing.text
类 BoxView

java.lang.Object
  继承者 javax.swing.text.View
      继承者 javax.swing.text.CompositeView
          继承者 javax.swing.text.BoxView
所有已实现的接口:
SwingConstants
直接已知子类:
BlockView, FlowView, TableView, TableView.TableCell, TableView.TableRow, WrappedPlainView, ZoneView

public class BoxView
   
   
   
   
extends CompositeView

一个视图,它通过沿某轴平铺将其子级排列到框形状中。此框与 TeX 中的框有些类似,它需要处理子级的对齐方式,还要考虑到子级的灵活性等等。这是一个构造块,可用于表示类似线、段落、列表、列、页面等的集合。子级平铺时沿用的轴被视为主轴。与它垂直的轴为辅轴。

每个轴的布局分别由 layoutMajorAxislayoutMinorAxis 方法单独处理。子类可通过重新实现这些方法来更改该布局算法。需要时将根据是否有缓存布局信息以及此缓存是否有效来调用这些方法。通常情况下,当沿轴的给定大小发生更改,或者调用了 layoutChanged 对布局强制更新时,此方法被调用。layoutChanged 方法使缓存布局信息无效(如果有)。发布到父视图的要求是通过 calculateMajorAxisRequirementscalculateMinorAxisRequirements 进行计算的。如果布局算法已更改,这些方法按道理都需要重新实现。


字段摘要
 
从类 javax.swing.text.View 继承的字段
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
 
从接口 javax.swing.SwingConstants 继承的字段
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
构造方法摘要
BoxView(Element elem, int axis)
          构造一个 BoxView
 
方法摘要
protected  voidbaselineLayout(int targetSpan, int axis, int[] offsets, int[] spans)
          在给定的 targetSpan 区域,即我们将使用的区域的宽度(或高度),计算每个子视图在此 BoxView 中的位置和扩展。
protected  SizeRequirementsbaselineRequirements(int axis, SizeRequirements r)
          通过检查每个子视图的大小计算此 BoxView 的大小要求。
protected  SizeRequirementscalculateMajorAxisRequirements(int axis, SizeRequirements r)
          计算主轴 axis 的大小要求。
protected  SizeRequirementscalculateMinorAxisRequirements(int axis, SizeRequirements r)
          计算辅轴 axis 的大小要求。
protected  voidchildAllocation(int index, Rectangle alloc)
          为子视图分配一个区域。
protected  booleanflipEastAndWestAtEnds(int position, Position.Bias bias)
          确定下一个视图的放置方向。
protected  voidforwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
          将给定的 DocumentEvent 转发给需要接收模型更改通知的子视图。
 floatgetAlignment(int axis)
          确定此视图沿某个轴所需的调整值。
 intgetAxis()
          获取平铺轴属性。
 ShapegetChildAllocation(int index, Shape a)
          获取给定子视图的分配。
 intgetHeight()
          返回框的当前高度。
 floatgetMaximumSpan(int axis)
          确定此视图沿某个轴的最大区域。
 floatgetMinimumSpan(int axis)
          确定此视图沿某个轴的最小区域。
protected  intgetOffset(int axis, int childIndex)
          获取特定子级的当前布局的偏移量。
 floatgetPreferredSpan(int axis)
          确定此视图沿某个轴的首选区域。
 intgetResizeWeight(int axis)
          获取调整的权重。
protected  intgetSpan(int axis, int childIndex)
          获取特定子级的当前布局的区域。
protected  ViewgetViewAtPoint(int x, int y, Rectangle alloc)
          获取给定坐标处的子视图。
 intgetWidth()
          返回框的当前宽度。
protected  booleanisAfter(int x, int y, Rectangle innerAlloc)
          确定一个点是否位于分配区域的后面。
protected  booleanisAllocationValid()
          子级分配是否仍有效。
protected  booleanisBefore(int x, int y, Rectangle innerAlloc)
          确定一个点是否位于分配区域的前面。
protected  booleanisLayoutValid(int axis)
          确定沿给定轴的布局是否有效。
protected  voidlayout(int width, int height)
          执行对框的布局
 voidlayoutChanged(int axis)
          使沿某轴的布局变得无效。
protected  voidlayoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
          执行对框的主轴的布局(即它所代表的轴)布局的结果应存储在给定的数组中,它表示沿主轴对子级的分配。
protected  voidlayoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
          执行对框的辅轴的布局(即与它所代表的轴垂直的轴)。
 ShapemodelToView(int pos, Shape a, Position.Bias b)
          提供从文档模型的坐标空间到映射到它的视图的坐标空间的映射。
 voidpaint(Graphics g, Shape allocation)
          使用该面给定的呈现面和区域呈现 BoxView
protected  voidpaintChild(Graphics g, Rectangle alloc, int index)
          绘制一个子级。
 voidpreferenceChanged(View child, boolean width, boolean height)
          这由子级来调用,以表明它的首选项区域已更改。
 voidreplace(int index, int length, View[] elems)
          使布局变得无效并调整所需/分配的缓存大小。
 voidsetAxis(int axis)
          设置平铺轴属性。
 voidsetSize(float width, float height)
          设置视图的大小。
 intviewToModel(float x, float y, Shape a, Position.Bias[] bias)
          提供从视图坐标空间到模型逻辑坐标空间的映射。
 
从类 javax.swing.text.CompositeView 继承的方法
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, getViewIndexAtPosition, loadChildren, modelToView, setInsets, setParagraphInsets, setParent
 
从类 javax.swing.text.View 继承的方法
append, breakView, changedUpdate, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, insertUpdate, isVisible, modelToView, remove, removeAll, removeUpdate, updateChildren, updateLayout, viewToModel
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

BoxView

public BoxView(Element elem,
               int axis)
构造一个 BoxView

参数:
elem - 此视图负责的元素
axis - View.X_AXISView.Y_AXIS 之一
方法详细信息

getAxis

public int getAxis()
获取平铺轴属性。这是子视图平铺沿用的轴。

返回:
框的主轴,可以是 View.X_AXISView.Y_AXIS
从以下版本开始:
1.3

setAxis

public void setAxis(int axis)
设置平铺轴属性。这是子视图平铺沿用的轴。

参数:
axis - View.X_AXISView.Y_AXIS 之一
从以下版本开始:
1.3

layoutChanged

public void layoutChanged(int axis)
使沿某轴的布局变得无效。如果任何一个子视图的首选项发生更改,将自动使所沿轴的布局变得无效。有些情况下,如果首选项未更改,则可能需要重新计算布局。调用此方法可将布局标记为无效。下次在此视图(通常在绘制中)上调用 setSize 方法时,布局将被更新。

参数:
axis - View.X_AXISView.Y_AXIS 之一
从以下版本开始:
1.3

isLayoutValid

protected boolean isLayoutValid(int axis)
确定沿给定轴的布局是否有效。

参数:
axis - View.X_AXISView.Y_AXIS 之一
从以下版本开始:
1.4

paintChild

protected void paintChild(Graphics g,
                          Rectangle alloc,
                          int index)
绘制一个子级。默认情况下,这就是它所执行的所有功能,但是子类可使用此方法绘制跟该子级有关的组件。

参数:
g - 图像上下文
alloc - 分配的要向其绘制的区域
index - 子级的索引,该索引 >= 0 && < getViewCount()

replace

public void replace(int index,
                    int length,
                    View[] elems)
使布局变得无效并调整所需/分配的缓存大小。旧布局中的子级分配仍可被访问,但是新的子级将都有一个值为 0 的偏移量和区域。

覆盖:
CompositeView 中的 replace
参数:
index - 要插入新视图的子视图的开始索引;其值 >= 0 且 <= getViewCount
length - 要移除的现有子视图数;其值 >= 0 且 <= (getViewCount() - offset)
elems - 要添加的子视图;此值可以为 null,表示没有要添加的子级(对移除有用)

forwardUpdate

protected void forwardUpdate(DocumentEvent.ElementChange ec,
                             DocumentEvent e,
                             Shape a,
                             ViewFactory f)
将给定的 DocumentEvent 转发给需要接收模型更改通知的子视图。如果有一个子级更改了它的要求并且在转发前分配为有效,则框中从开始子级到框结束部分将重新被绘制。

覆盖:
View 中的 forwardUpdate
参数:
ec - 此视图负责的元素上发生的更改(如果未发生更改,则为 null
e - 来自相关文档的更改信息
a - 视图的当前分配
f - 重新构造时需要使用的工厂(如果视图有子级)
另请参见:
View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)