uTools-Manuals/docs/java/javax/swing/SizeSequence.html

447 lines
19 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
javax.swing
</div>
<h2 class="title" title="Class SizeSequence">Class SizeSequence</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>javax.swing.SizeSequence</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public class <span class="typeNameLabel">SizeSequence</span>
extends <a href="../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
<div class="block">
<span><code>SizeSequence</code>对象有效地维护有序的大小和相应位置的列表。</span>
<span><code>SizeSequence</code>可能适合的情况是显示多行不等大小的组件。</span>
<span>在这种情况下,可以使用单个<code>SizeSequence</code>对象跟踪所有行的高度和Y位置。</span>
<p> <span>另一个例子是多列组件,例如<code>JTable</code> ,其中列大小并不都相等。</span> <span><code>JTable</code>可能使用单个<code>SizeSequence</code>对象来存储所有列的宽度和X位置。</span> <span><code>JTable</code>可以使用<code>SizeSequence</code>对象来查找对应于某个位置的列。</span> <span>每当一个或多个列大小更改时, <code>JTable</code>可以更新<code>SizeSequence</code>对象。</span> </p>
<p> <span>下图显示了多列组件的大小和位置数据之间的关系。</span> </p>
<center>
<img alt="第一个项目从位置0开始第二个项目等于前一个项目的大小等等。" height="100" src="doc-files/SizeSequence-1.gif" width="384"/>
</center>
<p> <span>在图中第一索引0对应于第一列第二索引1到第二列等等。</span> <span>第一列的位置从0开始列占用<em>大小<sub>0</sub></em>像素,其中<em>大小<sub>0</sub></em>是由<code>getSize(0)</code>返回的值。</span> <span>因此,第一列以<em>大小<sub>0-1</sub></em>结束。然后第二列从位置<em>大小<sub>0</sub></em>开始并占据<em>大小<sub>1</sub></em> <code>getSize(1)</code> )像素。</span> </p>
<p> <span>请注意, <code>SizeSequence</code>对象简单地表示沿轴的间隔。</span> <span>在我们的示例中,间隔代表高度或宽度(以像素为单位)。</span> <span>但是,任何其他计量单位(例如,以天为单位)都可以同样有效。</span> </p>
<h3> <span>实施说明</span> </h3>
<span>通常当存储条目的大小和位置时,可以选择存储大小或存储其位置。</span>
<span>渲染过程中需要的两个常见操作是: <code>getIndex(position)</code><code>setSize(index, size)</code></span>
<span>无论选择哪种内部格式,当条目数量变大时,这些操作之一都是昂贵的。</span>
<span>如果存储大小,则查找包含特定位置的条目的索引在条目数量上是线性的。</span>
<span>如果替换存储位置,则在特定索引处设置条目的大小需要更新受影响的条目的位置,这也是线性计算。</span>
<p> <span>像上述技术一样这个类在内部保存一个N个整数的数组但是使用混合编码这是基于大小和基于位置的方法之间的一半。</span> <span>结果是数据结构占用相同的空间来存储信息但可以在LogN时间而不是ON中执行大多数操作其中N是列表中的条目数。</span> </p>
<p> <span>在条目数量上保持ON的两个操作是<code>insertEntries</code><code>removeEntries</code>方法,这两个操作都是通过将内部数组转换为一组整数大小来实现的,将其复制到新数组中,然后重新构建混合表示到位。</span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.3
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#SizeSequence--">SizeSequence</a></span>()</code>
<div class="block">
创建一个不包含条目的新的
<code>SizeSequence</code>对象。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#SizeSequence-int-">SizeSequence</a></span>(int numEntries)</code>
<div class="block">
创建一个新的
<code>SizeSequence</code>对象其中包含指定数量的条目全部初始化为大小为0。
</div> </td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#SizeSequence-int:A-">SizeSequence</a></span>(int[] sizes)</code>
<div class="block">
创建一个包含指定大小的新的
<code>SizeSequence</code>对象。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#SizeSequence-int-int-">SizeSequence</a></span>(int numEntries, int value)</code>
<div class="block">
创建一个新的
<code>SizeSequence</code>对象,其中包含指定数量的条目,全部初始化为
<code>value</code>
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t4"><span><a href="javascript:show(8);">具体的方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#getIndex-int-">getIndex</a></span>(int position)</code>
<div class="block">
返回与指定位置对应的条目的索引。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#getPosition-int-">getPosition</a></span>(int index)</code>
<div class="block">
返回指定条目的起始位置。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#getSize-int-">getSize</a></span>(int index)</code>
<div class="block">
返回指定条目的大小。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#getSizes--">getSizes</a></span>()</code>
<div class="block">
返回所有条目的大小。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#insertEntries-int-int-int-">insertEntries</a></span>(int start, int length, int value)</code>
<div class="block">
向这个
<code>SizeSequence</code>添加一组连续的条目。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#removeEntries-int-int-">removeEntries</a></span>(int start, int length)</code>
<div class="block">
移除此条目的一组连续的
<code>SizeSequence</code>
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#setSize-int-int-">setSize</a></span>(int index, int size)</code>
<div class="block">
设置指定条目的大小。
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/swing/SizeSequence.html#setSizes-int:A-">setSizes</a></span>(int[] sizes)</code>
<div class="block">
重新设置这个
<code>SizeSequence</code>对象,使用
<code>sizes</code>参数中的数据。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../java/lang/Object.html#clone--">clone</a>, <a href="../../java/lang/Object.html#equals-java.lang.Object-">equals</a>, <a href="../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../java/lang/Object.html#hashCode--">hashCode</a>, <a href="../../java/lang/Object.html#notify--">notify</a>, <a href="../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../java/lang/Object.html#toString--">toString</a>, <a href="../../java/lang/Object.html#wait--">wait</a>, <a href="../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="SizeSequence--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>SizeSequence</h4> <pre>public SizeSequence()</pre>
<div class="block">
<span>创建一个不包含条目的新的<code>SizeSequence</code>对象。</span>
<span>要添加条目,您可以使用<code>insertEntries</code><code>setSizes</code></span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../javax/swing/SizeSequence.html#insertEntries-int-int-int-"><code>insertEntries(int, int, int)</code></a>
<a href="../../javax/swing/SizeSequence.html#setSizes-int:A-"><code>setSizes(int[])</code></a>
</dd>
</dl> </li>
</ul> <a name="SizeSequence-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>SizeSequence</h4> <pre>public SizeSequence(int numEntries)</pre>
<div class="block">
创建一个新的
<code>SizeSequence</code>对象其中包含指定数量的条目全部初始化为具有大小0。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>numEntries</code> - 要追踪的尺寸数量
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/NegativeArraySizeException.html" title="class in java.lang">NegativeArraySizeException</a></code> - 如果
<code>numEntries &lt; 0</code>
</dd>
</dl> </li>
</ul> <a name="SizeSequence-int-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>SizeSequence</h4> <pre>public SizeSequence(int numEntries,
int value)</pre>
<div class="block">
创建一个新的
<code>SizeSequence</code>对象,其中包含指定数量的条目,全部初始化为
<code>value</code>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>numEntries</code> - 要跟踪的大小数
</dd>
<dd>
<code>value</code> - 每个大小的初始值
</dd>
</dl> </li>
</ul> <a name="SizeSequence-int:A-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>SizeSequence</h4> <pre>public SizeSequence(int[] sizes)</pre>
<div class="block">
创建一个包含指定大小的新的
<code>SizeSequence</code>对象。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>sizes</code> -尺寸的阵列,以被包含在
<code>SizeSequence</code>
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="setSizes-int:A-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setSizes</h4> <pre>public void setSizes(int[] sizes)</pre>
<div class="block">
<span>重设此<code>SizeSequence</code>对象,使用<code>sizes</code>参数中的数据。</span>
<span>此方法重新初始化此对象,使其包含与<code>sizes</code>数组一样多的条目。</span>
<span>每个条目的大小都将初始化为sizes中相应项目的<code>sizes</code></span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>sizes</code> - 要包含在这个
<code>SizeSequence</code>
</dd>
</dl> </li>
</ul> <a name="getSizes--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getSizes</h4> <pre>public int[] getSizes()</pre>
<div class="block">
返回所有条目的大小。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个包含此对象中的大小的新数组
</dd>
</dl> </li>
</ul> <a name="getPosition-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getPosition</h4> <pre>public int getPosition(int index)</pre>
<div class="block">
<span>返回指定条目的起始位置。</span>
<span>例如, <code>getPosition(0)</code>返回0 <code>getPosition(1)</code>等于<code>getSize(0)</code> <code>getPosition(2)</code>等于<code>getSize(0)</code> + <code>getSize(1)</code> ,依此类推。</span>
<p> <span>请注意,如果<code>index</code>大于<code>length</code>返回的值可能无意义。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>index</code> - 需要排名的条目的索引
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
指定条目的起始位置
</dd>
</dl> </li>
</ul> <a name="getIndex-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getIndex</h4> <pre>public int getIndex(int position)</pre>
<div class="block">
<span>返回与指定位置对应的条目的索引。</span>
<span>例如, <code>getIndex(0)</code>为0因为第一个入口总是从0开始。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>position</code> - 条目的位置
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
占据指定位置的条目的索引
</dd>
</dl> </li>
</ul> <a name="getSize-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getSize</h4> <pre>public int getSize(int index)</pre>
<div class="block">
<span>返回指定条目的大小。</span>
<span>如果<code>index</code>超出范围<code>(0 &lt;= index &lt; getSizes().length)</code> ,行为是未指定的。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>index</code> - 与条目对应的索引
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
条目的大小
</dd>
</dl> </li>
</ul> <a name="setSize-int-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setSize</h4> <pre>public void setSize(int index,
int size)</pre>
<div class="block">
<span>设置指定条目的大小。</span>
<span>请注意,如果<code>index</code>的值<code>index</code>的范围内, <code>(0 &lt;= index &lt; getSizes().length)</code>该行为是未指定的。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>index</code> - 与条目对应的索引
</dd>
<dd>
<code>size</code> - 条目的大小
</dd>
</dl> </li>
</ul> <a name="insertEntries-int-int-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>insertEntries</h4> <pre>public void insertEntries(int start,
int length,
int value)</pre>
<div class="block">
<span>向这个<code>SizeSequence</code>添加一组连续的条目。</span>
<span>请注意, <code>start</code><code>length</code>的值必须满足以下条件: <code>(0 &lt;= start &lt; getSizes().length) AND (length &gt;= 0)</code></span>
<span>如果不满足这些条件,则该行为是未指定的,并且可能会抛出异常。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>start</code> - 要分配给组中第一个条目的索引
</dd>
<dd>
<code>length</code> - 组中的条目数
</dd>
<dd>
<code>value</code> - 要分配给每个新条目的大小
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/ArrayIndexOutOfBoundsException.html" title="class in java.lang">ArrayIndexOutOfBoundsException</a></code> - 如果参数超出范围:(
<code>0 &lt;= start &lt; (getSizes().length)) AND (length &gt;= 0)</code>
</dd>
</dl> </li>
</ul> <a name="removeEntries-int-int-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>removeEntries</h4> <pre>public void removeEntries(int start,
int length)</pre>
<div class="block">
<span>从这个<code>SizeSequence</code>中删除一组连续的条目。</span>
<span>请注意, <code>start</code><code>length</code>的值必须满足以下条件: <code>(0 &lt;= start &lt; getSizes().length) AND (length &gt;= 0)</code></span>
<span>如果不满足这些条件,则该行为是未指定的,并且可能会抛出异常。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>start</code> - 要删除的第一个条目的索引
</dd>
<dd>
<code>length</code> - 要删除的条目数
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>