mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-07-02 14:42:43 +08:00
447 lines
19 KiB
HTML
447 lines
19 KiB
HTML
<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>结果是数据结构占用相同的空间来存储信息,但可以在Log(N)时间而不是O(N)中执行大多数操作,其中N是列表中的条目数。</span> </p>
|
||
<p> <span>在条目数量上保持O(N)的两个操作是<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 < 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 <= index < 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 <= index < 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 <= start < getSizes().length) AND (length >= 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 <= start < (getSizes().length)) AND (length >= 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 <= start < getSizes().length) AND (length >= 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> |