partialseg.html

来自「java类库详细讲解」· HTML 代码 · 共 219 行

HTML
219
字号
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Retrieving All the Text from a JTextComponent Efficiently
(Java Developers Almanac Example)
</TITLE>
<META CONTENT="Patrick Chan" NAME="AUTHOR">
<META CONTENT="Code Examples from The Java Developers Almanac 1.4" NAME="DESCRIPTION">
<META CONTENT="Addison-Wesley/Patrick Chan" NAME="OWNER">
<META CONTENT="3/20/02" NAME="revision">
<STYLE TYPE="text/css">
<!--     BODY CODE  {font-family: Courier, Monospace;           font-size: 11pt}    TABLE, BODY          {font-family: Verdana, Arial, Helvetica, sans-serif;           font-size: 10pt}    PRE   {font-family: Courier, Monospace;           font-size: 10pt}    H3    {font-family: Verdana, Arial, Helvetica, sans-serif;           font-size: 11pt}    A.eglink {text-decoration: none}    A:hover.eglink {text-decoration: underline}    -->
</STYLE>
</HEAD>
<BODY>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD rowspan="3"><A HREF="/?l=ex"><IMG BORDER="0" ALIGN="BOTTOM" HSPACE="10" SRC="/egs/almanac14a.jpg"></A></TD><TD VALIGN="top"><font face="Times" size="6"><b>The Java Developers Almanac 1.4</b></font>
<br>
        Order this book from <a href="/cgi-bin/scripts/redirect.pl?l=ex&url=http://www.amazon.com/exec/obidos/ASIN/0201752808/xeo">Amazon</a>.
    </TD>
</TR>
<TR>
<TD align="right" valign="bottom">
<FORM method="get" action="/cgi-bin/search/find.pl">
<INPUT size="25" name="words" type="text"><INPUT value="Search" type="submit">
</FORM>
</TD>
</TR>
</TABLE>
<HR color="#6666cc">
<DIV ALIGN="LEFT">
<A HREF="/">Home</A>
    &gt;
    <A HREF="../index.html">List of Packages</A>
    &gt;
    <B><A HREF="../javax.swing.text/pkg.html">javax.swing.text</A></B><font color="#666666" SIZE="-2">
        &nbsp;[49 examples]
        </font>
        &gt;
        <B><A HREF="../javax.swing.text/pkg.html#JTextComponent">JTextComponent</A></B><font color="#666666" SIZE="-2">
            &nbsp;[11 examples]
            </font>
</DIV><P>
  <h3>
    e968.  
    Retrieving All the Text from a JTextComponent Efficiently</h3>

The text contained in a text component is not always stored
contiguously. Therefore, retrieving text using <code>getText()</code> may
cause a new <code>String</code> object to be created and the text copied to
the new string.  If you do not need the text in one contiguous chunk,
the most efficient way to retrieve the text is in pieces called
segments.  This example retrieves the entire contents of a text
component in segments.


<pre>
    // Create the text component
    JTextComponent textComp = new <font color="#0066ff"><i>JTextPane()</i></font>;
    Document doc = textComp.getDocument();
    
    // Create a segment to hold the characters in the document
    Segment segment = new Segment();
    int pos = 0;
    segment.setPartialReturn(true);
    
    try {
        // Retrieve all segments
        while (pos &lt; doc.getLength()) {
            // Ask for the remainder of the document text
            doc.getText(pos, doc.getLength()-pos, segment);
    
            // You can access the contents directly from the array in the segment.
            // Never modify the contents of the array
            for (int i=0; i&lt;segment.count; i++) {
                int positionInDoc = pos+i;
                char charAtPos = segment.array[i+segment.offset];
            }
    
            // Or use the segment as a character iterator
            int i=0;
            for(char c=segment.first(); c != CharacterIterator.DONE; c=segment.next(), i++) {
                int positionInDoc = pos+i;
                char charAtPos = c;
            }
    
            // Increment pos by the actual number of characters retrieved
            pos += segment.count;
        }
    } catch (BadLocationException e) {
    }
</pre>
<P><table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td bgcolor="#6666cc" align="center"><font color="#ffffff">
            &nbsp;Related Examples
        </font></td>
</tr>
</table>


e967. <a class="eglink" href="GetText.html?l=rel">
    Retrieving Text from a JTextComponent
</a>
<br>

e969. <a class="eglink" href="EditTextField.html?l=rel">
    Modifying Text in a JTextComponent
</a>
<br>

e970. <a class="eglink" href="ConcurReadText.html?l=rel">
    Asynchronously Reading the Contents of a Visible JTextComponent
</a>
<br>

e971. <a class="eglink" href="FindWord.html?l=rel">
    Finding Word Boundaries in a JTextComponent
</a>
<br>

e972. <a class="eglink" href="GetWrappedLines.html?l=rel">
    Retrieving the Visible Lines in a JTextComponent
</a>
<br>

e973. <a class="eglink" href="Pos.html?l=rel">
    Using a Position in a JTextComponent
</a>
<br>

e974. <a class="eglink" href="LimitText.html?l=rel">
    Limiting the Capacity of a JTextComponent
</a>
<br>

e975. <a class="eglink" href="DragEnabledTextArea.html?l=rel">
    Enabling Text-Dragging on a JTextComponent
</a>
<br>

e976. <a class="eglink" href="ShareDoc.html?l=rel">
    Sharing a Document Between JTextComponents
</a>
<br>

e977. <a class="eglink" href="WalkViews.html?l=rel">
    Enumerating All the Views in a JTextComponent
</a>
<br>


<table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td align="left">
<br>
        See also: 
<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#Actions%20and%20Key%20Bindings">
    Actions and Key Bindings
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#Caret%20and%20Selection">
    Caret and Selection
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#Events">
    Events
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JEditorPane">
    JEditorPane
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JFormattedTextField">
    JFormattedTextField
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JTextArea">
    JTextArea
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JTextField">
    JTextField
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JTextPane">
    JTextPane
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#Styles">
    Styles
</a>&nbsp;&nbsp;

</td>
</tr>
</table>

<br>

<br>
<FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="0">
&copy; 2002 Addison-Wesley.
</FONT>
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?