|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
| °³¿ä: NESTED | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | |||||||||
java.lang.Objectjava.awt.font.LineBreakMeasurer
public final class LineBreakMeasurer
LineBreakMeasurer Ŭ·¡½º¸¦ »ç¿ëÇϸé, ¼½Ä ÷ºÎ ÅØ½ºÆ®¸¦, ƯÁ¤ÀÇ °¡½Ã À¯È¿Æø¿¡ µé¾î°¡´Â Çà (¶Ç´Â ¼¼±×¸ÕÆ®(segment))À¸·Î ³ª´ ¼ö°¡ ÀÖ½À´Ï´Ù. À̰ÍÀº °íÀ¯ÀdzÐÀÌ (·¦ÇÎÆøÀ¸·Î ºÒ¸°´Ù)¿¡ µé¾î°¡´Â ÅØ½ºÆ®ÀÇ ´Ü¶ôÀ» Ŭ¶óÀÌ¾ðÆ®¿¡ Ç¥½ÃÇÏ´Â °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù.
LineBreakMeasurer´Â
¼½Ä ÷ºÎ ÅØ½ºÆ®¿¡ ´ëÇÑ ¹Ýº¹ÀÚ¸¦ »ç¿ëÇØ ±¸ÃàµË´Ï´Ù. ¹Ýº¹ÀÚÀÇ ¹üÀ§´Â ÅØ½ºÆ®³»ÀÇ 1°³ÀÇ ´Ü¶ôÀÔ´Ï´Ù. LineBreakMeasurer´Â
´ÙÀ½ÀÇ ÅØ½ºÆ® ¼¼±×¸ÕÆ®(segment)¸¦ °³½ÃÇϱâ À§Çؼ
ÅØ½ºÆ®³»ÀÇ À§Ä¡¸¦ Æ÷ÇÔÇÕ´Ï´Ù. óÀ½Àº ÀÌ Á¤µµ°ªÀÌ ÅØ½ºÆ®ÀÇ ½ÃÁ¡ÀÔ´Ï´Ù. ´Ü¶ôÀÇ ¹æÇâÀº ½Ö¹æÇâ Æ÷¸Ë ±ÔÄ¢¿¡ µû¶ó
Àü¹æÇâ (¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊ ¶Ç´Â ¿À¸¥ÂÊ¿¡¼ ¿ÞÂÊ)¿¡ À̸¨´Ï´Ù. ´Ü¶ôÀ¸·ÎºÎÅÍ ÃëµæµÈ ¸ðµç ¼¼±×¸ÕÆ®(segment)´Â ±× ´Ü¶ô°ú °°Àº ¹æÇâÀÌ µË´Ï´Ù.
ÅØ½ºÆ®ÀÇ ¼¼±×¸ÕÆ®(segment)´Â nextLayout ¸Þ¼µå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ÃëµæµË´Ï´Ù. ÀÌ ¸Þ¼µå´Â ·¦ÇÎÆø¿¡ µé¾î°¡´Â ÅØ½ºÆ®¸¦ ³ªÅ¸³»´Â TextLayout¸¦
¸®ÅÏÇÕ´Ï´Ù. nextLayout ¸Þ¼µå´Â nextLayoutÀÌ µ¹·ÁÁØ ·¹À̾ƿôÀÇ ±¸¼®¿¡ ÇöÀçÀÇ À§Ä¡¸¦ À̵¿ÇÕ´Ï´Ù.
LineBreakMeasurer´Â
°¡Àå ÀϹÝÀûÀÎ ´ÙÀ½ÀÇ °³ÇàÀ» ±¸ÇöÇÕ´Ï´Ù. ·¦ÇÎÆø¿¡ µé¾î°¡´Â ¸ðµç ´Ü¾î´Â °°Àº Çà¿¡ ¹èÄ¡µË´Ï´Ù. ÃÖÃÊÀÇ ´Ü¾î°¡ ¼ö½ÀµÇÁö ¾ÊÀ¸¸é, ·¦ÇÎÆø¿¡ µé¾î°¥ »ÓÀÇ ¹®ÀÚ°¡ ±× Çà¿¡ ¹èÄ¡µË´Ï´Ù. °¢ Çà¿¡´Â Àû¾îµµ 1 ¹®ÀÚ°¡ ¹èÄ¡µË´Ï´Ù.
LineBreakMeasurer¿¡ ÀÇÇØ ¸®ÅϵÈ
TextLayout
ÀνºÅϽº´Â ÅÇÀ»³ÐÀÌ 0
½ºÆäÀ̽º¿Í °°°Ô Ãë±ÞÇÕ´Ï´Ù. À§Ä¡ °áÁ¤À» À§Çؼ ÅÇ ´Ü¶ôÀÇ ¼¼±×¸ÕÆ®(segment)¸¦ ¾ò´Â Ŭ¶óÀÌ¾ðÆ®´Â ÅØ½ºÆ®¿¡ ´ëÇÑ ¸®¹ÔÆ® ¿ÀÇÁ¼Â(offset)¸¦ ÃëÇÏ´Â nextLayout
overload¸¦ »ç¿ëÇϵµ·ÏÀÇÇØ ÁÖ¼¼¿ä. ¸®¹ÔÆ® ¿ÀÇÁ¼Â(offset)´Â ÅÇ ÀÌÈÄÀÇ ÃÖÃÊÀÇ ¹®ÀÚÀÔ´Ï´Ù. ÀÌ ¸Þ¼µå°¡ µ¹·ÁÁÖ´Â TextLayout°´Ã¼´Â
ÁöÁ¤µÈ ¸®¹ÔÆ® (ÇöÀçÀÇ À§Ä¡¿Í ¸®¹ÔÆ®¿ÍÀÇ »çÀÌÀÇ ÅØ½ºÆ®°¡ ·¦ÇÎÆø¿¡ µé¾î°¡Áö ¾Ê´Â °æ¿ì¿¡´Â ¸®¹ÔÆ®ÀÇ Àü)·Î ³¡³³´Ï´Ù.
ÅÇ ´Ü¶ôÀÇ ÅØ½ºÆ®¸¦ ·¹À̾ƿô Çϴ Ŭ¶óÀÌ¾ðÆ®¿¡´Â ÃÖÃÊÀÇ ¼¼±×¸ÕÆ®(segment)¸¦ Çà¿¡ ¹èÄ¡ÇÑµÚ ¾à°£ ´Ù¸¥ °³Çà Á¤Ã¥°¡ ÇÊ¿äÇÕ´Ï´Ù. ³ª¸ÓÁöÀÇ ¿µ¿ª¿¡ ÀϺÎÀÇ ´Ü¾î¸¦ °ÅµÎ´Â °ÍÀÌ ¾Æ´Ï¶ó, Àüü¸¦ ´ÙÀ½ÀÇ Çà¿¡ ¹èÄ¡ÇÕ´Ï´Ù. Á¤Ã¥
ÀÇ ÀÌ º¯°æÀº, boolean ÆÄ¶ó¹ÌÅ͸¦ ÃëÇÏ´Â nextLayout
overload·Î ¿ä±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅͰ¡ trueÀÎ °æ¿ì, nextLayout´Â
ÃÖÃÊÀÇ ´Ü¾î°¡ ÁöÁ¤µÈ ¿µ¿ª¿¡ µé¾î°¡Áö ¾ÊÀ» ¶§¿¡ nullÀ»
¸®ÅÏÇÕ´Ï´Ù. ¾Æ·¡¿Í °°Àº ÅÇ »ùÇÃÀ» ÂüÁ¶ÇϽʽÿÀ.
º¸Åë, LineBreakMeasurer
ÀÛ¼º¿¡ »ç¿ëµÈ ÅØ½ºÆ®°¡ º¯°æµÇ¾úÀ» °æ¿ì´Â º¯°æÀ» ¹Ý¿µÇϱâ À§Çؼ »õ·Î¿î LineBreakMeasurer¸¦ ÀÛ¼ºÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù (Áö±Ý±îÁöÀÇ LineBreakMeasurer´Â ±×´ë·Î Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏÁö¸¸, ÅØ½ºÆ®ÀÇ º¯°æ¿¡´Â ´ëÀÀÇÏÁö ¾Ê´Â´Ù). ´Ù¸¸, ÅØ½ºÆ®ÀÇ º¯°æÀÌ 1 ¹®ÀÚÀÇ »ðÀÔ ¶Ç´Â »èÁ¦ÀÇ °æ¿ì¿¡´Â insertChar ¶Ç´Â deleteChar¸¦ È£ÃâÇØ, ±âÁ¸ÀÇ LineBreakMeasurer¸¦ ¡¸°»½Å¡¹Çصµ ±¦Âú½À´Ï´Ù. ±âÁ¸ÀÇ LineBreakMeasurer¸¦ °»½ÅÇÏ´Â (ºÐ)ÆíÀÌ, »õ·Ó°Ô ÀÛ¼ºÇÏ´Â °Íº¸´Ùµµ ó¸® ½Ã°£ÀÌ °É¸®Áö ¾Ê½À´Ï´Ù. »ç¿ëÀÚ
ÀÇ Å° ÀԷ¿¡ ÀÇÇØ ÅØ½ºÆ®¸¦ º¯°æÇÏ´Â °æ¿ì´Â ÀÌ·¯ÇÑ ¹æ¹ýÀ» ÀÌ¿ëÇϸé ÁÁÀ» °ÍÀÔ´Ï´Ù.
¿¹:
ÄÄÆÛ³ÍÆ®¿¡ ´Ü¶ôÀ» ·»´õ¸µ ÇÕ´Ï´Ù.
public void paint(Graphics graphics) {
Point2D pen = new Point2D(10, 20);
Graphics2D g2d = (Graphics2D) graphics;
FontRenderContext frc = g2d.getFontRenderContext();
// let styledText be an AttributedCharacterIterator containing at least
// one character
LineBreakMeasurer measurer = new LineBreakMeasurer(styledText, frc);
float wrappingWidth = getSize(). width - 15;
while (measurer.getPosition() < fStyledText.length()) {
TextLayout layout = measurer.nextLayout(wrappingWidth);
pen.y += (layout.getAscent());
float dx = layout.isLeftToRight() ?
0 : (wrappingWidth - layout.getAdvance());
layout.draw(graphics, pen.x + dx, pen.y);
pen.y += layout.getDescent() + layout.getLeading();
}
}
ÅÇ Ã·ºÎÀÇ ÅØ½ºÆ®¸¦ ·»´õ¸µ ÇÕ´Ï´Ù. ¾Ë±â ½±°ÔÇϱâ À§ÇØ, ÅØ½ºÆ®ÀÇ ¹æÇâÀº ¸ðµÎ ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊÀ¸·Î ÇÕ´Ï´Ù.
public void paint(Graphics graphics) {
float leftMargin = 10, rightMargin = 310;
float[] tabStops = { 100, 250 };
// assume styledText is an AttributedCharacterIterator, and the number
// of tabs in styledText is tabCount
int[] tabLocations = new int[tabCount+1];
int i = 0;
for (char c = styledText.first(); c ! = styledText.DONE; c = styledText.next()) {
if (c == '\t') {
tabLocations[i++] = styledText.getIndex();
}
}
tabLocations[tabCount] = styledText.getEndIndex() - 1;
// Now tabLocations has an entry for every tab's offset in
// the text. For convenience, the last entry is tabLocations
// is the offset of the last character in the text.
LineBreakMeasurer measurer = new LineBreakMeasurer(styledText);
int currentTab = 0;
float verticalPos = 20;
while (measurer.getPosition() < styledText.getEndIndex()) {
// Lay out and draw each line. All segments on a line
// must be computed before any drawing can occur, since
// we must know the largest ascent on the line.
// TextLayouts are computed and stored in a Vector;
// their horizontal positions are stored in a parallel
// Vector.
// lineContainsText is true after first segment is drawn
boolean lineContainsText = false;
boolean lineComplete = false;
float maxAscent = 0, maxDescent = 0;
float horizontalPos = leftMargin;
Vector layouts = new Vector(1);
Vector penPositions = new Vector(1);
while (! lineComplete) {
float wrappingWidth = rightMargin - horizontalPos;
TextLayout layout =
measurer.nextLayout(wrappingWidth,
tabLocations[currentTab]+1,
lineContainsText);
// layout can be null if lineContainsText is true
if (layout ! = null) {
layouts.addElement(layout);
penPositions.addElement(new Float(horizontalPos));
horizontalPos += layout.getAdvance();
maxAscent = Math.max(maxAscent, layout.getAscent());
maxDescent = Math.max(maxDescent,
layout.getDescent() + layout.getLeading());
} else {
lineComplete = true;
}
lineContainsText = true;
if (measurer.getPosition() == tabLocations[currentTab]+1) {
currentTab++;
}
if (measurer.getPosition() == styledText.getEndIndex())
lineComplete = true;
else if (horizontalPos >= tabStops[tabStops.length-1])
lineComplete = true;
if (! lineComplete) {
// move to next tab stop
int j;
for (j=0; horizontalPos >= tabStops[j]; j++) {}
horizontalPos = tabStops[j];
}
}
verticalPos += maxAscent;
Enumeration layoutEnum = layouts.elements();
Enumeration positionEnum = penPositions.elements();
// now iterate through layouts and draw them
while (layoutEnum.hasMoreElements()) {
TextLayout nextLayout = (TextLayout) layoutEnum.nextElement();
Float nextPosition = (Float) positionEnum.nextElement();
nextLayout.draw(graphics, nextPosition.floatValue(), verticalPos);
}
verticalPos += maxDescent;
}
}
TextLayout | »ý¼ºÀÚ °³¿ä | |
|---|---|
LineBreakMeasurer (AttributedCharacterIterator text,
BreakIterator breakIter,
FontRenderContext frc)
ÁöÁ¤µÈ ÅØ½ºÆ®¿¡ ´ëÇÑ LineBreakMeasurer¸¦ ±¸ÃàÇÕ´Ï´Ù. |
|
LineBreakMeasurer (AttributedCharacterIterator text,
FontRenderContext frc)
ÁöÁ¤µÈ ÅØ½ºÆ®¿¡ ´ëÇÑ LineBreakMeasurer¸¦ ±¸ÃàÇÕ´Ï´Ù. |
|
| ¸Þ¼µå °³¿ä | |
|---|---|
void |
deleteChar (AttributedCharacterIterator newParagraph,
int deletePos)
ÅØ½ºÆ®·ÎºÎÅÍ ¹®ÀÚ°¡ 1°³ »èÁ¦µÈ µÚ¿¡ LineBreakMeasurer¸¦ °»½ÅÇØ, ÇöÀçÀÇ À§Ä¡¸¦ ±× ´Ü¶ôÀÇ ¼±µÎ·Î ¼³Á¤ÇÕ´Ï´Ù. |
int |
getPosition ()
LineBreakMeasurer
ÇöÀçÀÇ À§Ä¡¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
void |
insertChar (AttributedCharacterIterator newParagraph,
int insertPos)
ÅØ½ºÆ®¿¡ ¹®ÀÚ°¡ 1°³ »ðÀÔµÈ µÚ¿¡ LineBreakMeasurer¸¦ °»½ÅÇØ, ÇöÀçÀÇ À§Ä¡¸¦ ±× ´Ü¶ôÀÇ ¼±µÎ·Î ¼³Á¤ÇÕ´Ï´Ù. |
TextLayout |
nextLayout (float wrappingWidth)
´ÙÀ½ÀÇ ·¹À̾ƿôÀ» µ¹·ÁÁÖ°í, ÇöÀçÀÇ À§Ä¡¸¦ °»½ÅÇÕ´Ï´Ù. |
TextLayout |
nextLayout (float wrappingWidth,
int offsetLimit,
boolean requireNextWord)
´ÙÀ½ÀÇ ·¹À̾ƿôÀ» µ¹·ÁÁÖ°í, ÇöÀçÀÇ À§Ä¡¸¦ °»½ÅÇÕ´Ï´Ù. |
int |
nextOffset (float wrappingWidth)
´ÙÀ½ÀÇ ·¹À̾ƿôÀÇ ¸¶Áö¸· À§Ä¡¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
int |
nextOffset (float wrappingWidth,
int offsetLimit,
boolean requireNextWord)
´ÙÀ½ÀÇ ·¹À̾ƿôÀÇ ¸¶Áö¸· À§Ä¡¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
void |
setPosition (int newPosition)
LineBreakMeasurer
ÇöÀçÀÇ À§Ä¡¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
| Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
|---|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
| »ý¼ºÀÚ »ó¼¼ |
|---|
public LineBreakMeasurer(AttributedCharacterIterator text,
FontRenderContext frc)
LineBreakMeasurer¸¦ ±¸ÃàÇÕ´Ï´Ù.
text - ÀÌ LineBreakMeasurer°¡ TextLayout °´Ã¼ÀÇ »ý¼º ´ë»óÀ¸·Î ÇÏ´Â ÅØ½ºÆ®. ÀÌ ÅØ½ºÆ®¿¡´Â 1°³
ÀÌ»óÀÇ ¹®ÀÚ°¡ Æ÷ÇԵǾî ÀÖÁö ¾ÊÀ¸¸é ¾È µÈ´Ù. iter·Î
¾òÀ» ¼ö ÀÖ´Â ÅØ½ºÆ®°¡ º¯°æµÇ¾úÀ» °æ¿ì, ±× ÈÄÀÇ ÀÌ LineBreakMeasurer
ÀνºÅϽº¿¡ÀÇ È£ÃâÀÇ °á°ú´Â º¸ÁõµÇÁö ¾Ê´Â´Ù (´Ù¸¸, ³ªÁß¿¡ insertChar ¶Ç´Â deleteChar¸¦ È£ÃâÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇÏ´Ù. °ü·Ã Ç׸ñÀ» ÂüÁ¶)frc - ÅØ½ºÆ®¸¦ Á¤È®ÇÏ°Ô ÃøÁ¤Çϱâ À§Çؼ ÇÊ¿äÇÑ ±×·¡ÇÈ µð¹ÙÀ̽º¿¡ °üÇÑ Á¤º¸°¡ ÀÖ´Ù. ÅØ½ºÆ® ÃøÁ¤Àº µð¹ÙÀ̽ºÀÇ ÇØ»óµµ¿¡ ÀÇÇØ Á¶±Ý ´Þ¶ó, ¿¡Àϸ®¾î¡ Á¦°Å¿Í °°Àº ¼Ó¼º¿¡ µû¶ó¼ ´Ù¸£´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â LineBreakMeasurer¿Í
»ç¿ëÀÚ
°ø°£ÀÇ »çÀÌÀÇ À̵¿Àº ÁöÁ¤ÇÏÁö ¾Ê´ÂinsertChar(java.text.AttributedCharacterIterator, int),
deleteChar(java.text.AttributedCharacterIterator, int)
public LineBreakMeasurer(AttributedCharacterIterator text,
BreakIterator breakIter,
FontRenderContext frc)
LineBreakMeasurer¸¦ ±¸ÃàÇÕ´Ï´Ù.
text - ÀÌ LineBreakMeasurer°¡ TextLayout °´Ã¼ÀÇ »ý¼º ´ë»óÀ¸·Î ÇÏ´Â ÅØ½ºÆ®. ÀÌ ÅØ½ºÆ®¿¡´Â 1°³
ÀÌ»óÀÇ ¹®ÀÚ°¡ Æ÷ÇԵǾî ÀÖÁö ¾ÊÀ¸¸é ¾È µÈ´Ù. iter·Î
¾òÀ» ¼ö ÀÖ´Â ÅØ½ºÆ®°¡ º¯°æµÇ¾úÀ» °æ¿ì, ±× ÈÄÀÇ ÀÌ LineBreakMeasurer
ÀνºÅϽº¿¡ÀÇ È£ÃâÀÇ °á°ú´Â º¸ÁõµÇÁö ¾Ê´Â´Ù (´Ù¸¸, ³ªÁß¿¡ insertChar ¶Ç´Â deleteChar¸¦ È£ÃâÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇÏ´Ù. °ü·Ã Ç׸ñÀ» ÂüÁ¶)breakIter - °³ÇàÀ» Á¤ÀÇÇÏ´Â BreakIterator frc - ÅØ½ºÆ®¸¦ Á¤È®ÇÏ°Ô ÃøÁ¤Çϱâ À§Çؼ ÇÊ¿äÇÑ ±×·¡ÇÈ µð¹ÙÀ̽º¿¡ °üÇÑ Á¤º¸°¡ ÀÖ´Ù. ÅØ½ºÆ® ÃøÁ¤Àº µð¹ÙÀ̽ºÀÇ ÇØ»óµµ¿¡ ÀÇÇØ Á¶±Ý ´Þ¶ó, ¿¡Àϸ®¾î¡ Á¦°Å¿Í °°Àº ¼Ó¼º¿¡ µû¶ó¼ ´Ù¸£´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â LineBreakMeasurer¿Í
»ç¿ëÀÚ
°ø°£ÀÇ »çÀÌÀÇ À̵¿Àº ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù
IllegalArgumentException - ÅØ½ºÆ®°¡ 1 ¹®ÀÚ¿¡ ¸ø ¹ÌÄ£ °æ¿ìinsertChar(java.text.AttributedCharacterIterator, int),
deleteChar(java.text.AttributedCharacterIterator, int) | ¸Þ¼µåÀÇ »ó¼¼ |
|---|
public int nextOffset(float wrappingWidth)
LineBreakMeasurer
ÇöÀçÀÇ À§Ä¡¸¦ °»½ÅÇÏÁö ¾Ê½À´Ï´Ù.
wrappingWidth - ´ÙÀ½ÀÇ ·¹À̾ƿô³»ÀÇ ÅØ½ºÆ®¿¡ Çã¿ë µÇ´Â ÃÖ´ëÀÇ °¡½Ã À¯È¿Æø
TextLayout
¸®¹ÔÆ®¸¦ ³ªÅ¸³»´Â ÅØ½ºÆ®³»ÀÇ ÁÂÇ¥
public int nextOffset(float wrappingWidth,
int offsetLimit,
boolean requireNextWord)
LineBreakMeasurer
ÇöÀçÀÇ À§Ä¡¸¦ °»½ÅÇÏÁö ¾Ê½À´Ï´Ù.
wrappingWidth - ´ÙÀ½ÀÇ ·¹À̾ƿô³»ÀÇ ÅØ½ºÆ®¿¡ Çã¿ë µÇ´Â ÃÖ´ëÀÇ °¡½Ã À¯È¿ÆøoffsetLimit - ¸®¹ÔÆ® ÀÌÈÄÀÇ ÅØ½ºÆ®°¡ ·¦ÇÎÆø¿¡ µé¾î°¡´Â °æ¿ì¿¡¼µµ, ´ÙÀ½ÀÇ ·¹À̾ƿô¿¡ Æ÷ÇÔµÇÁö ¾Ê´Â ÃÖÃÊÀÇ ¹®ÀÚ. offsetLimit´Â
ÇöÀçÀÇ À§Ä¡º¸´Ù Å©Áö ¾ÊÀ¸¸é ¾È µÇ´ÂrequireNextWord - trueÀÎ °æ¿ì, ´ÙÀ½ÀÇ ´Ü¾î Àüü°¡ wrappingWidth¿¡ µé¾î°¡Áö ¾ÊÀ» ¶§¿¡ ÇöÀçÀÇ À§°ªÀÌ ¸®ÅϵȴÙ. falseÀÎ °æ¿ì, ¸®ÅϵÈ
ÁÂÇ¥´Â ÇöÀçÀÇ À§Ä¡º¸´Ù Àû¾îµµ 1 Å©´Ù
TextLayout
¸®¹ÔÆ®¸¦ ³ªÅ¸³»´Â ÅØ½ºÆ®³»ÀÇ ÁÂÇ¥public TextLayout nextLayout(float wrappingWidth)
wrappingWidth - ´ÙÀ½ÀÇ ·¹À̾ƿô³»ÀÇ ÅØ½ºÆ®¿¡ Çã¿ë µÇ´Â ÃÖ´ëÀÇ °¡½Ã À¯È¿Æø
wrappingWidth¿¡ µé¾î°¡´Â ´ÙÀ½ÀÇ ÇàÀ» ³ªÅ¸³», ÇöÀçÀÇ À§Ä¡·ÎºÎÅÍ ½ÃÀ۵Ǵ TextLayout
public TextLayout nextLayout(float wrappingWidth,
int offsetLimit,
boolean requireNextWord)
wrappingWidth - ´ÙÀ½ÀÇ ·¹À̾ƿô³»ÀÇ ÅØ½ºÆ®¿¡ Çã¿ë µÇ´Â ÃÖ´ëÀÇ °¡½Ã À¯È¿ÆøoffsetLimit - ¸®¹ÔÆ® ÀÌÈÄÀÇ ÅØ½ºÆ®°¡ ·¦ÇÎÆø¿¡ µé¾î°¡´Â °æ¿ì¿¡¼µµ, ´ÙÀ½ÀÇ ·¹À̾ƿô¿¡ Æ÷ÇÔµÇÁö ¾Ê´Â ÃÖÃÊÀÇ ¹®ÀÚ. offsetLimit´Â
ÇöÀçÀÇ À§Ä¡º¸´Ù Å©Áö ¾ÊÀ¸¸é ¾È µÇ´ÂrequireNextWord - trueÀÎ °æ¿ì, ÇÑÆí ÇöÀçÀÇ À§Ä¡¿¡ ÀÖ´Â ´Ü¾î Àüü°¡ ·¦ÇÎÆø¿¡ µé¾î°¡Áö ¾Ê´Â °æ¿ì, nullÀÌ ¸®ÅϵȴÙ. falseÀÎ °æ¿ì, Àû¾îµµ ÇöÀçÀÇ À§Ä¡¿¡ ÀÖ´Â ¹®ÀÚ¸¦ Æ÷ÇÔÇÑ, À¯È¿ÇÑ ·¹À̾ƿôÀÌ ¸®ÅϵȴÙ
wrappingWidth¿¡ µé¾î°¡´Â ´ÙÀ½ÀÇ ÇàÀ» ³ªÅ¸³», ÇöÀçÀÇ À§Ä¡·ÎºÎÅÍ ½ÃÀ۵Ǵ TextLayout. ÇöÀçÀÇ À§Ä¡°¡LineBreakMeasurer
»ç¿ëÇÏ´Â ÅØ½ºÆ®ÀÇ Á¾´Ü¿¡ ÀÖ´Â °æ¿ì, nullÀÌ ¸®ÅϵȴÙpublic int getPosition()
LineBreakMeasurer
ÇöÀçÀÇ À§Ä¡¸¦ ¸®ÅÏÇÕ´Ï´Ù.
LineBreakMeasurer
ÇöÀçÀÇ À§Ä¡setPosition(int) public void setPosition(int newPosition)
LineBreakMeasurer
ÇöÀçÀÇ À§Ä¡¸¦ ¼³Á¤ÇÕ´Ï´Ù.
newPosition - LineBreakMeasurer
ÇöÀçÀÇ À§Ä¡. ÀÌ Á¤µµÄ¡´Â LineBreakMeasurer¸¦ ÀÛ¼ºÇϱâ À§Çؼ »ç¿ëµÇ´Â ÅØ½ºÆ® (¶Ç´Â insertChar ³ª deleteChar¿¡ ¸¶Áö¸·¿¡ °Ç³×¹ÞÀº ÅØ½ºÆ®) ³»¿¡ ÀÖ´ÂgetPosition()
public void insertChar(AttributedCharacterIterator newParagraph,
int insertPos)
LineBreakMeasurer¸¦ °»½ÅÇØ, ÇöÀçÀÇ À§Ä¡¸¦ ±× ´Ü¶ôÀÇ ¼±µÎ·Î ¼³Á¤ÇÕ´Ï´Ù.
newParagraph - »ðÀÔ ÈÄÀÇ ÅØ½ºÆ®insertPos - ÅØ½ºÆ®³»ÀÇ, ¹®ÀÚ°¡ »ðÀÔµÈ À§Ä¡
IndexOutOfBoundsException - insertPos°¡ newParagraph
°³½Ã À§Ä¡º¸´Ù Àü, ¶Ç´Â newParagraph
Á¾·á À§Ä¡¿Í °°Àº°¡ ±× ÀÌÈÄÀÎ °æ¿ì
NullPointerException - newParagraph°¡ nullÀÎ °æ¿ìdeleteChar(java.text.AttributedCharacterIterator, int)
public void deleteChar(AttributedCharacterIterator newParagraph,
int deletePos)
LineBreakMeasurer¸¦ °»½ÅÇØ, ÇöÀçÀÇ À§Ä¡¸¦ ±× ´Ü¶ôÀÇ ¼±µÎ·Î ¼³Á¤ÇÕ´Ï´Ù.
newParagraph - »èÁ¦ ÈÄÀÇ ÅØ½ºÆ®deletePos - ÅØ½ºÆ®³»ÀÇ, ¹®ÀÚ°¡ »èÁ¦µÈ À§Ä¡
IndexOutOfBoundsException - deletePos°¡ newParagraph
°³½Ã À§Ä¡º¸´Ù Àü, ¶Ç´Â newParagraph
Á¾·á À§Ä¡¿¡¼(º¸´Ù) µÚÀÎ °æ¿ì
NullPointerException - newParagraph°¡ nullÀÎ °æ¿ìinsertChar(java.text.AttributedCharacterIterator, int)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
| °³¿ä: NESTED | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.