103 lines
6.9 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="Interface Painter">Interface Painter&lt;T&gt;</h2>
</div><div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
所有已知实现类:
</dt>
<dd>
<span><a href="../../javax/swing/plaf/nimbus/AbstractRegionPainter.html" title="javax.swing.plaf.nimbus中的类">AbstractRegionPainter</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public interface <span class="typeNameLabel">Painter&lt;T&gt;</span></pre>
<div class="block">
<p> <span>绘画代表。</span> <span>Painter界面正好定义了一种方法 <code>paint</code></span> <span>它用于开发人员可以更改组件的绘制程序的情况,而无需使用子类化组件。</span> <span>在做任何形式的绘画代表团时也是一般有用的。</span> </p>
<p> <span><code>Painter</code>是Java2D代码的简单封装并且重用现有的<code>Painter</code>或将它们组合在一起是相当微不足道的。</span> <span>这个界面的实现也很简单,所以如果你找不到需要的<code>Painter</code> ,你可以用最少的努力写一个。</span> <span>写一个<code>Painter</code>需要Java2D的知识。</span> </p>
<p> <span><code>Painter</code>可以与一类参数来创建。</span> <span>预计这种类型将在<code>paint</code></span> <span>例如,你可能希望写一个<code>Painter</code> ,只有拥有的子类作品<a href="../../java/awt/Component.html" title="java.awt中的类"><code>Component</code></a></span> <span>在这种情况下,当声明<code>Painter</code>时,您可以声明它需要一个<code>Component</code> 允许paint方法类型安全。</span> <span>例如:</span> </p>
<pre> <span><code> Painter&lt;Component&gt; p = new Painter&lt;Component&gt;() { public void paint(Graphics2D g, Component c, int width, int height) { g.setColor(c.getBackground()); //and so forth } } </code></span> </pre>
<p> <span>此接口不保证线路安全。</span> </p>
</div> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="t3"><span><a href="javascript:show(4);">抽象方法</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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/swing/Painter.html#paint-java.awt.Graphics2D-T-int-int-">paint</a></span>(<a href="../../java/awt/Graphics2D.html" title="class in java.awt">Graphics2D</a> g, <a href="../../javax/swing/Painter.html" title="type parameter in Painter">T</a> object, int width, int height)</code>
<div class="block">
<span>给出给定的<a href="../../java/awt/Graphics2D.html" title="java.awt中的类"><code>Graphics2D</code></a>对象。</span>
</div> </td>
</tr>
</tbody>
</table> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="paint-java.awt.Graphics2D-java.lang.Object-int-int-">
<!-- --> </a><a name="paint-java.awt.Graphics2D-T-int-int-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>paint</h4> <pre>void paint(<a href="../../java/awt/Graphics2D.html" title="class in java.awt">Graphics2D</a> g,
<a href="../../javax/swing/Painter.html" title="type parameter in Painter">T</a> object,
int width,
int height)</pre>
<div class="block">
<p> <span>给予给定的<a href="../../java/awt/Graphics2D.html" title="java.awt中的类"><code>Graphics2D</code></a>对象。</span> <span>此方法的实现<em>可能会</em>修改<code>Graphics2D</code>上的<code>Graphics2D</code> ,并且在完成后不需要恢复该状态。</span> <span>在大多数情况下,建议呼叫者传递一个临时图形对象。</span> <span><code>Graphics2D</code>永远不能为空。</span> </p>
<p> <span>图形对象上的状态可能会被<code>paint</code>方法所<code>paint</code> ,但可能不是。</span> <span>例如,设置在显卡的抗锯齿呈现提示可能会或可能不会被尊重<code>Painter</code>实施。</span> </p>
<p> <span>提供的对象参数充当可选配置参数。</span> <span>例如,它可以是<code>Component</code></span> <span>A <code>Painter</code> ,期望它可以从该<code>Component</code>读取状态并使用状态进行绘画。</span> <span>例如一个实现可以读取backgroundColor并使用它。</span> </p>
<p> <span>一般来说,为了提高可重用性,大多数标准的<code>Painter</code>忽略此参数。</span> <span>因此,它们可以在任何情况下重复使用。</span> <span><code>object</code>可能为null。</span> <span>如果对象参数为空则实现不能抛出NullPointerException。</span> </p>
<p> <span>最后, <code>width</code><code>height</code>参数指定<code>Painter</code>应该绘制的宽度和高度。</span> <span>更具体地说,指定的宽度和高度指示画家应该在该宽度和高度内完全绘制。</span> <span><code>g</code>参数上的任何指定剪辑将进一步限制该区域。</span> </p>
<p> <span>例如,假设我有一个绘制渐变的<code>Painter</code>实现。</span> <span>渐变从白色变成黑色。</span> <span>它“延伸”填满绘画区域。</span> <span>因此,如果我使用这个<code>Painter</code>绘制一个500×500的区域最左边的区域将是黑色最右边是白色并且之间将画一个平滑的渐变。</span> <span>我可以不用修改,重用<code>Painter</code>画一个20x20的区域。</span> <span>这个区域也将在左边是黑色,右边是白色,并且之间画一个平滑的渐变。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>g</code> - 要呈现的Graphics2D。</span>
<span>这不能为空。</span>
</dd>
<dd>
<span><code>object</code> - 可选配置参数。</span>
<span>这可能是空的。</span>
</dd>
<dd>
<code>width</code> - 要涂漆的区域的宽度。
</dd>
<dd>
<code>height</code> - 要涂漆的面积的高度。
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>