|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object | +--java.awt.font.LineBreakMeasurer
LineBreakMeasurer
Ŭ·¡½º¸¦ »ç¿ëÇϸé, ¼½Ä ÷ºÎ ÅØ½ºÆ®¸¦, ƯÁ¤ÀÇ °¡½Ã À¯È¿Æø¿¡ µé¾î°¡´Â Çà (¶Ç´Â ¼¼±×¸ÕÆ®(segment))À¸·Î ³ª´ ¼ö°¡ ÀÖ½À´Ï´Ù. À̰ÍÀº °íÀ¯ÀÇ Æø (·¦ÇÎÆøÀ¸·Î ºÒ¸°´Ù)¿¡ µé¾î°¡´Â ÅØ½ºÆ®ÀÇ ´Ü¶ôÀ» Ŭ¶óÀÌ¾ðÆ®¿¡ Ç¥½ÃÇÏ´Â °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù.
LineBreakMeasurer
´Â ¼½Ä ÷ºÎ ÅØ½ºÆ®¿¡ ´ëÇÑ ¹Ýº¹ÀÚ¸¦ »ç¿ëÇØ ±¸ÃàµË´Ï´Ù. ¹Ýº¹ÀÚÀÇ ¹üÀ§´Â ÅØ½ºÆ®³»ÀÇ 1 °³ÀÇ ´Ü¶ôÀÔ´Ï´Ù. LineBreakMeasurer
´Â ´ÙÀ½ÀÇ ÅØ½ºÆ® ¼¼±×¸ÕÆ®(segment)¸¦ °³½ÃÇϱâ À§Çؼ, ÅØ½ºÆ®³»ÀÇ À§Ä¡¸¦ ÀúÀåÇÕ´Ï´Ù. óÀ½Àº ÀÌ Á¤µµÄ¡°¡ ÅØ½ºÆ®ÀÇ ½ÃÁ¡ÀÔ´Ï´Ù. ´Ü¶ôÀÇ ¹æÇâÀº ½Ö¹æÇâ Æ÷¸Ë ±ÔÄ¢¿¡ µû¶ó, Àü¹æÇâ (¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊ ¶Ç´Â ¿À¸¥ÂÊ¿¡¼ ¿ÞÂÊ)¿¡ À̸¨´Ï´Ù. ´Ü¶ôÀ¸·ÎºÎÅÍ ÃëµæµÈ ¸ðµç ¼¼±×¸ÕÆ®(segment)´Â ±× ´Ü¶ô°ú °°Àº ¹æÇâÀÌ µË´Ï´Ù.
ÅØ½ºÆ®ÀÇ ¼¼±×¸ÕÆ®(segment)´Â nextLayout
¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ÃëµæµË´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ·¦ÇÎÆø¿¡ µé¾î°¡´Â ÅØ½ºÆ®¸¦ ³ªÅ¸³»´Â TextLayout
¸¦ µ¹·ÁÁÝ´Ï´Ù. nextLayout
¸Þ¼Òµå´Â nextLayout
°¡ µ¹·ÁÁØ ·¹À̾ƿôÀÇ ±¸¼®¿¡ ÇöÀçÀÇ À§Ä¡¸¦ À̵¿ÇÕ´Ï´Ù.
LineBreakMeasurer
´Â °¡Àå ÀϹÝÀûÀÎ ´ÙÀ½ÀÇ °³ÇàÀ» ±¸ÇöÇÕ´Ï´Ù. ·¦ÇÎÆø¿¡ µé¾î°¡´Â ¸ðµç ´Ü¾î´Â °°Àº Çà¿¡ ¹èÄ¡µË´Ï´Ù. ÃÖÃÊÀÇ ´Ü¾î°¡ ¼ö½ÀµÇÁö ¾ÊÀ¸¸é, ·¦ÇÎÆø¿¡ µé¾î°¥ »Ó(¸¸Å)ÀÇ Ä³¸¯ÅͰ¡ ±× Çà¿¡ ¹èÄ¡µË´Ï´Ù. °¢ Çà¿¡´Â Àû¾îµµ 1 ij¸¯ÅͰ¡ ¹èÄ¡µË´Ï´Ù.
LineBreakMeasurer
¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁö´Â TextLayout
ÀÇ ÀνºÅϽº´Â ÅÇÀ» Æø 0 ÀÇ ½ºÆäÀ̽º¿Í °°°Ô Ãë±ÞÇÕ´Ï´Ù. À§Ä¡ °áÁ¤À» À§Çؼ(¶§¹®¿¡) ÅÇ ´Ü¶ôÀÇ ¼¼±×¸ÕÆ®(segment)¸¦ ÃëµæÇϴ Ŭ¶óÀÌ¾ðÆ®´Â ÅØ½ºÆ®¿¡ ´ëÇÑ ¸®¹ÔÆ® ¿ÀÇÁ¼Â(offset)¸¦ ÃëÇÏ´Â nextLayout
ÀÇ overload¸¦ »ç¿ëÇϵµ·Ï ÇØ ÁÖ¼¼¿ä. ¸®¹ÔÆ® ¿ÀÇÁ¼Â(offset)´Â ÅÇ ÀÌÈÄÀÇ ÃÖÃÊÀÇ Ä³¸¯ÅÍÀÔ´Ï´Ù. ÀÌ ¸Þ¼Òµå°¡ µ¹·ÁÁÖ´Â TextLayout
¿ÀºêÁ§Æ®´Â ÁöÁ¤µÈ ¸®¹ÔÆ® (ÇöÀçÀÇ À§Ä¡¿Í ¸®¹ÔÆ®¿ÍÀÇ »çÀÌÀÇ ÅØ½ºÆ®°¡ ·¦ÇÎÆø¿¡ µé¾î°¡Áö ¾Ê´Â °æ¿ì¿¡´Â ¸®¹ÔÆ®ÀÇ Àü)·Î ³¡³³´Ï´Ù.
ÅÇ ´Ü¶ôÀÇ ÅØ½ºÆ®¸¦ ·¹À̾ƿô Çϴ Ŭ¶óÀÌ¾ðÆ®¿¡´Â ÃÖÃÊÀÇ ¼¼±×¸ÕÆ®(segment)¸¦ Çà¿¡ ¹èÄ¡ÇÑ µÚ, ¾à°£ ´Ù¸¥ °³Çà Æú¸®½Ã°¡ ÇÊ¿äÇÕ´Ï´Ù. ³ª¸ÓÁöÀÇ area¿¡ ÀϺÎÀÇ ´Ü¾î¸¦ °ÅµÎ´Â °ÍÀÌ ¾Æ´Ï¶ó, Àüü¸¦ ´ÙÀ½ÀÇ Çà¿¡ ¹èÄ¡ÇÕ´Ï´Ù. Æú¸®½ÃÀÇ ÀÌ º¯°æÀº boolean
ÆÄ¶ó¹ÌÅ͸¦ ÃëÇÏ´Â nextLayout
ÀÇ overload·Î ¿ä±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅͰ¡ true
ÀÇ °æ¿ì,nextLayout
´Â ÃÖÃÊÀÇ ´Ü¾î°¡ ÁöÁ¤µÈ area¿¡ µé¾î°¡Áö ¾ÊÀ» ¶§¿¡ null
¸¦ µ¹·ÁÁÝ´Ï´Ù. ¾Æ·¡¿Í °°Àº ÅÇ »ùÇÃÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
Åë»ó,LineBreakMeasurer
ÀÇ ÀÛ¼º¿¡ »ç¿ëµÈ ÅØ½ºÆ®°¡ º¯°æµÇ¾úÀ» °æ¿ì´Â º¯°æÀ» ¹Ý¿µÇϱâ À§Çؼ »õ·Î¿î LineBreakMeasurer
¸¦ ÀÛ¼ºÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù (Áö±Ý±îÁöÀÇ LineBreakMeasurer
´Â ±×´ë·Î Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏÁö¸¸, ÅØ½ºÆ®ÀÇ º¯°æ¿¡´Â ´ëÀÀÇÏÁö ¾Ê´Â´Ù). ´Ù¸¸, ÅØ½ºÆ®ÀÇ º¯°æÀÌ 1 ij¸¯ÅÍÀÇ »ðÀÔ ¶Ç´Â »èÁ¦ÀÇ °æ¿ì¿¡´Â 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)
ÅØ½ºÆ®¿¡ ij¸¯ÅͰ¡ 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 kr ÀÌ»óÀÇ Ä³¸¯ÅͰ¡ ÀúÀåµÇ¾î ÀÖÁö ¾ÊÀ¸¸é ¾È µÈ´Ù. 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 kr ÀÌ»óÀÇ Ä³¸¯ÅͰ¡ ÀúÀåµÇ¾î ÀÖÁö ¾ÊÀ¸¸é ¾È µÈ´Ù. iter
·Î ¾òÀ» ¼ö ÀÖ´Â ÅØ½ºÆ®°¡ º¯°æµÇ¾úÀ» °æ¿ì, ±× ÈÄÀÇ ÀÌ LineBreakMeasurer
ÀÇ ÀνºÅϽº¿¡ÀÇ È£ÃâÀÇ °á°ú´Â ÇÁ·ÎÅØ¼ÇµÇÁö ¾Ê´Â´Ù (´Ù¸¸, ³ªÁß¿¡ insertChar
¶Ç´Â deleteChar
¸¦ È£ÃâÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇÏ´Ù. °ü·Ã Ç׸ñÀ» ÂüÁ¶)breakIter
- °³ÇàÀ» Á¤ÀÇÇÏ´Â BreakIterator
frc
- ÅØ½ºÆ®¸¦ Á¤È®ÇÏ°Ô ÃøÁ¤Çϱâ À§Çؼ ÇÊ¿äÇÑ ±×·¡ÇȽº µð¹ÙÀ̽º¿¡ °üÇÑ Á¤º¸°¡ ÀÖ´Ù. ÅØ½ºÆ® ÃøÁ¤Àº µð¹ÙÀ̽ºÀÇ ÇØ»óµµ¿¡ ÀÇÇØ Á¶±Ý ´Þ¶ó, ¿¡Àϸ®¾î¡ Á¦°Å¿Í °°Àº ¼Ó¼º¿¡ µû¶ó¼ ´Ù¸£´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â LineBreakMeasurer
¿Í À¯Àú °ø°£ÀÇ »çÀÌÀÇ À̵¿Àº ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù
IllegalArgumentException
- ÅØ½ºÆ®°¡ 1 ij¸¯ÅÍ¿¡ ¸ø ¹ÌÄ£ °æ¿ì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
ÀÇ °æ¿ì, Àû¾îµµ ÇöÀçÀÇ À§Ä¡¿¡ Àִ ij¸¯Å͸¦ Æ÷ÇÔÇÑ, À¯È¿ÇÑ ·¹À̾ƿôÀÌ µ¹·ÁÁÖ¾îÁø´Ù
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
- ÅØ½ºÆ®³»ÀÇ, ij¸¯ÅͰ¡ »ðÀÔµÈ À§Ä¡
IndexOutOfBoundsException
- insertPos
°¡ newParagraph
ÀÇ °³½Ã À§Ä¡º¸´Ù Àü, ¶Ç´Â newParagraph
ÀÇ Á¾·á À§Ä¡¿Í °°Àº°¡, ±× ÀÌÈÄÀÎ °æ¿ì
NullPointerException
- newParagraph
°¡ null
ÀÇ °æ¿ìdeleteChar(java.text.AttributedCharacterIterator, int)
public void deleteChar(AttributedCharacterIterator newParagraph, int deletePos)
LineBreakMeasurer
¸¦ °»½ÅÇØ, ÇöÀçÀÇ À§Ä¡¸¦ ±× ´Ü¶ôÀÇ ¼±µÎ·Î ¼³Á¤ÇÕ´Ï´Ù.
newParagraph
- »èÁ¦ ÈÄÀÇ ÅØ½ºÆ®deletePos
- ÅØ½ºÆ®³»ÀÇ, ij¸¯ÅͰ¡ »èÁ¦µÈ À§Ä¡
IndexOutOfBoundsException
- deletePos
°¡ newParagraph
ÀÇ °³½Ã À§Ä¡º¸´Ù Àü, ¶Ç´Â newParagraph
ÀÇ Á¾·á À§Ä¡¿¡¼(º¸´Ù) µÚÀÎ °æ¿ì
NullPointerException
- newParagraph
°¡ null
ÀÇ °æ¿ìinsertChar(java.text.AttributedCharacterIterator, int)
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ ÀÖ¾î¼ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.