java.lang.Objectjavax.swing.text.View
javax.swing.text.CompositeView
javax.swing.text.BoxView
javax.swing.text.TableView
public abstract class TableView
为某个表实现 View 接口,这由一个元素结构组成,其中此视图负责的元素的子元素表示行,而行元素的子元素为单元格。在单元格元素下可以有任意的元素结构,这将由通过 getViewFactory 方法返回的 ViewFactory 来构建。
表
行
单元格
单元格
行
单元格
单元格
此类实现为一个框的层次,表本身是垂直框,行是水平框,单元格是垂直框。单元格允许跨越多个列和行。在默认情况下,表可认为是在网格之上形成的(即可以在网格包布局中找到类似物),其中表单元格能请求跨越多个网格单元格。默认情况下,表单元格的水平跨距以此网格为基础,但是可以通过重新实现所请求的单元格跨距来更改(即需要时表单元格可以具有独立的跨距)。
View
| 嵌套类摘要 | |
|---|---|
class |
TableView.TableCell 已过时。 表单元格如今可以是任何 View 实现。 |
class |
TableView.TableRow 以行为中心的表格中的行视图。 |
| 字段摘要 |
|---|
| 从类 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 |
| 构造方法摘要 | |
|---|---|
TableView(Element elem) 针对给定的元素构造一个 TableView。 |
|
| 方法摘要 | |
|---|---|
protected SizeRequirements |
calculateMinorAxisRequirements(int axis, SizeRequirements r) 计算辅轴的所需大小。 |
protected TableView.TableCell |
createTableCell(Element elem) 已过时。 现在表单元格可以是任意视图实现并且应该由 ViewFactory 而不是表来产生。 |
protected TableView.TableRow |
createTableRow(Element elem) 创建新的表格行。 |
protected void |
forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f) 将给定的 DocumentEvent 转发给需要接收模型更改通知的子视图。 |
protected View |
getViewAtPosition(int pos, Rectangle a) 获取表示模型中给定位置的子视图。 |
protected void |
layoutColumns(int targetSpan, int[] offsets, int[] spans, SizeRequirements[] reqs) 布局列,使其符合给定的目标跨距。 |
protected void |
layoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans) 针对框的辅轴(即垂直于其所表示的轴的轴)执行布局操作。 |
void |
replace(int offset, int length, View[] views) 更改子视图。 |
| 从类 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 |
| 构造方法详细信息 |
|---|
public TableView(Element elem)
elem - 此视图所负责的元素
| 方法详细信息 |
|---|
protected TableView.TableRow createTableRow(Element elem)
elem - 元素
@Deprecated protected TableView.TableCell createTableCell(Element elem)
elem - 元素
protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
BoxView 复制的描述
DocumentEvent 转发给需要接收模型更改通知的子视图。如果有一个子级更改了它的要求并且在转发前分配为有效,则框中从开始子级到框结束部分将被重新绘制。
BoxView 中的
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)
public void replace(int offset,
int length,
View[] views)
offset - 要插入新视图的子视图的开始索引;其值 >= 0 且 <= getViewCount
length - 要移除的现有子视图数;其值 >= 0 且 <= (getViewCount() - offset)
views - 要添加的子视图;此值可以为
null,表示没有要添加的子级(对移除有用)
protected void layoutColumns(int targetSpan,
int[] offsets,
int[] spans,
SizeRequirements[] reqs)
offsets 和
spans 返回结果。
targetSpan - 所有表格列总的给定跨距
reqs - 每一列的所需大小。此参数是请求最小、首选、最大跨距的单元的列最大值
spans - 分配给每一列的量的返回值
offsets - 距每一列起始点的偏移量的返回值
protected void layoutMinorAxis(int targetSpan,
int axis,
int[] offsets,
int[] spans)
实现此方法来调用 layoutColumns 方法,然后转发给超类来实际执行表格行的布局。
BoxView 中的
layoutMinorAxis
targetSpan - 给视图的总跨距,将用于对子级的布局。
axis - 要布局的轴。
offsets - 距每个子视图的视图起始处的偏移量。这是一个返回值,由此方法的实现填写。
spans - 每个子视图的跨距。这是一个返回值,由此方法的实现填写。
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
实现此方法来计算作为列的所需大小之和的所需大小。
BoxView 中的
calculateMinorAxisRequirements
axis - 所考察的轴
r -
SizeRequirements 对象;如果为
null,将创建一个对象
SizeRequirements 对象
SizeRequirements
protected View getViewAtPosition(int pos, Rectangle a)
CompositeView 中的
getViewAtPosition
pos - 查找位置,该值 >= 0
a - 入口处表的分配和出口处包含该位置的视图的分配
null