?? partialseg.html
字號:
<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>
>
<A HREF="../index.html">List of Packages</A>
>
<B><A HREF="../javax.swing.text/pkg.html">javax.swing.text</A></B><font color="#666666" SIZE="-2">
[49 examples]
</font>
>
<B><A HREF="../javax.swing.text/pkg.html#JTextComponent">JTextComponent</A></B><font color="#666666" SIZE="-2">
[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 < 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<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">
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>
<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#Caret%20and%20Selection">
Caret and Selection
</a>
<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#Events">
Events
</a>
<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JEditorPane">
JEditorPane
</a>
<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JFormattedTextField">
JFormattedTextField
</a>
<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JTextArea">
JTextArea
</a>
<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JTextField">
JTextField
</a>
<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JTextPane">
JTextPane
</a>
<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#Styles">
Styles
</a>
</td>
</tr>
</table>
<br>
<br>
<FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="0">
© 2002 Addison-Wesley.
</FONT>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -