JavaTM 2
Platform
Std.  Ed.  v1. 4.0

java.awt.font
Ŭ·¡½º LineBreakMeasurer

java.lang.Object 
  |
  +--java.awt.font.LineBreakMeasurer

public final class LineBreakMeasurer
extends Object

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
 

»ý¼ºÀÚÀÇ »ó¼¼

LineBreakMeasurer

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)

LineBreakMeasurer

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)
¸Þ¼ÒµåÀÇ »ó¼¼

nextOffset

public int nextOffset(float wrappingWidth)
´ÙÀ½ÀÇ ·¹À̾ƿôÀÇ ¸¶Áö¸· À§Ä¡¸¦ µ¹·ÁÁÝ´Ï´Ù. LineBreakMeasurer ÀÇ ÇöÀçÀÇ À§Ä¡¸¦ °»½ÅÇÏÁö ¾Ê½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
wrappingWidth - ´ÙÀ½ÀÇ ·¹À̾ƿô³»ÀÇ ÅØ½ºÆ®¿¡ Çã¿ë µÇ´Â ÃÖ´ëÀÇ °¡½Ã À¯È¿Æø
¹Ýȯ°ª:
´ÙÀ½ÀÇ TextLayout ÀÇ ¸®¹ÔÆ®¸¦ ³ªÅ¸³»´Â ÅØ½ºÆ®³»ÀÇ ÁÂÇ¥

nextOffset

public int nextOffset(float wrappingWidth,
                      int offsetLimit,
                      boolean requireNextWord)
´ÙÀ½ÀÇ ·¹À̾ƿôÀÇ ¸¶Áö¸· À§Ä¡¸¦ µ¹·ÁÁÝ´Ï´Ù. LineBreakMeasurer ÀÇ ÇöÀçÀÇ À§Ä¡¸¦ °»½ÅÇÏÁö ¾Ê½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
wrappingWidth - ´ÙÀ½ÀÇ ·¹À̾ƿô³»ÀÇ ÅØ½ºÆ®¿¡ Çã¿ë µÇ´Â ÃÖ´ëÀÇ °¡½Ã À¯È¿Æø
offsetLimit - ¸®¹ÔÆ® ÀÌÈÄÀÇ ÅØ½ºÆ®°¡ ·¦ÇÎÆø¿¡ µé¾î°¡´Â °æ¿ì¿¡¼­µµ, ´ÙÀ½ÀÇ ·¹À̾ƿô¿¡ Æ÷ÇÔµÇÁö ¾Ê´Â ÃÖÃÊÀÇ Ä³¸¯ÅÍ. offsetLimit ´Â ÇöÀçÀÇ À§Ä¡º¸´Ù Å©Áö ¾ÊÀ¸¸é ¾È µÇ´Â
requireNextWord - true ÀÇ °æ¿ì, ´ÙÀ½ÀÇ ´Ü¾î Àüü°¡ wrappingWidth ¿¡ µé¾î°¡Áö ¾ÊÀ» ¶§¿¡ ÇöÀçÀÇ À§Ä¡°¡ µ¹·ÁÁÖ¾îÁø´Ù. false ÀÇ °æ¿ì, µ¹·ÁÁÖ¾îÁö´Â ÁÂÇ¥´Â ÇöÀçÀÇ À§Ä¡º¸´Ù Àû¾îµµ 1 Å©´Ù
¹Ýȯ°ª:
´ÙÀ½ÀÇ TextLayout ÀÇ ¸®¹ÔÆ®¸¦ ³ªÅ¸³»´Â ÅØ½ºÆ®³»ÀÇ ÁÂÇ¥

nextLayout

public TextLayout  nextLayout(float wrappingWidth)
´ÙÀ½ÀÇ ·¹À̾ƿôÀ» µ¹·ÁÁÖ¾î, ÇöÀçÀÇ À§Ä¡¸¦ °»½ÅÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
wrappingWidth - ´ÙÀ½ÀÇ ·¹À̾ƿô³»ÀÇ ÅØ½ºÆ®¿¡ Çã¿ë µÇ´Â ÃÖ´ëÀÇ °¡½Ã À¯È¿Æø
¹Ýȯ°ª:
wrappingWidth ¿¡ µé¾î°¡´Â ´ÙÀ½ÀÇ ÇàÀ» ³ªÅ¸³», ÇöÀçÀÇ À§Ä¡·ÎºÎÅÍ ½ÃÀ۵Ǵ TextLayout

nextLayout

public TextLayout  nextLayout(float wrappingWidth,
                             int offsetLimit,
                             boolean requireNextWord)
´ÙÀ½ÀÇ ·¹À̾ƿôÀ» µ¹·ÁÁÖ¾î, ÇöÀçÀÇ À§Ä¡¸¦ °»½ÅÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
wrappingWidth - ´ÙÀ½ÀÇ ·¹À̾ƿô³»ÀÇ ÅØ½ºÆ®¿¡ Çã¿ë µÇ´Â ÃÖ´ëÀÇ °¡½Ã À¯È¿Æø
offsetLimit - ¸®¹ÔÆ® ÀÌÈÄÀÇ ÅØ½ºÆ®°¡ ·¦ÇÎÆø¿¡ µé¾î°¡´Â °æ¿ì¿¡¼­µµ, ´ÙÀ½ÀÇ ·¹À̾ƿô¿¡ Æ÷ÇÔµÇÁö ¾Ê´Â ÃÖÃÊÀÇ Ä³¸¯ÅÍ. offsetLimit ´Â ÇöÀçÀÇ À§Ä¡º¸´Ù Å©Áö ¾ÊÀ¸¸é ¾È µÇ´Â
requireNextWord - true ÀÇ °æ¿ì, ÇÑÆí ÇöÀçÀÇ À§Ä¡¿¡ ÀÖ´Â ´Ü¾î Àüü°¡ ·¦ÇÎÆø¿¡ µé¾î°¡Áö ¾Ê´Â °æ¿ì,null °¡ µ¹·ÁÁÖ¾îÁø´Ù. false ÀÇ °æ¿ì, Àû¾îµµ ÇöÀçÀÇ À§Ä¡¿¡ Àִ ij¸¯Å͸¦ Æ÷ÇÔÇÑ, À¯È¿ÇÑ ·¹À̾ƿôÀÌ µ¹·ÁÁÖ¾îÁø´Ù
¹Ýȯ°ª:
wrappingWidth ¿¡ µé¾î°¡´Â ´ÙÀ½ÀÇ ÇàÀ» ³ªÅ¸³», ÇöÀçÀÇ À§Ä¡·ÎºÎÅÍ ½ÃÀ۵Ǵ TextLayout. ÇöÀçÀÇ À§Ä¡°¡,LineBreakMeasurer ÀÇ »ç¿ëÇÏ´Â ÅØ½ºÆ®ÀÇ Á¾´Ü¿¡ ÀÖ´Â °æ¿ì,null °¡ µ¹·ÁÁÖ¾îÁø´Ù

getPosition

public int getPosition()
LineBreakMeasurer ÀÇ ÇöÀçÀÇ À§Ä¡¸¦ µ¹·ÁÁÝ´Ï´Ù.

¹Ýȯ°ª:
LineBreakMeasurer ÀÇ ÇöÀçÀÇ À§Ä¡
°ü·Ã Ç׸ñ:
setPosition(int)

setPosition

public void setPosition(int newPosition)
LineBreakMeasurer ÀÇ ÇöÀçÀÇ À§Ä¡¸¦ ¼³Á¤ÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
newPosition - LineBreakMeasurer ÀÇ ÇöÀçÀÇ À§Ä¡. ÀÌ Á¤µµÄ¡´Â LineBreakMeasurer ¸¦ ÀÛ¼ºÇϱâ À§Çؼ­ »ç¿ëµÇ´Â ÅØ½ºÆ® (¶Ç´Â insertChar ³ª deleteChar ¿¡ ¸¶Áö¸·¿¡ °Ç³×¹ÞÀº ÅØ½ºÆ®) ³»¿¡ ÀÖ´Â
°ü·Ã Ç׸ñ:
getPosition()

insertChar

public void insertChar(AttributedCharacterIterator  newParagraph,
                       int insertPos)
ÅØ½ºÆ®¿¡ ij¸¯ÅͰ¡ 1 °³ »ðÀÔµÈ µÚ¿¡ LineBreakMeasurer ¸¦ °»½ÅÇØ, ÇöÀçÀÇ À§Ä¡¸¦ ±× ´Ü¶ôÀÇ ¼±µÎ·Î ¼³Á¤ÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
newParagraph - »ðÀÔ ÈÄÀÇ ÅØ½ºÆ®
insertPos - ÅØ½ºÆ®³»ÀÇ, ij¸¯ÅͰ¡ »ðÀÔµÈ À§Ä¡
¿¹¿Ü:
IndexOutOfBoundsException - insertPos °¡ newParagraph ÀÇ °³½Ã À§Ä¡º¸´Ù Àü, ¶Ç´Â newParagraph ÀÇ Á¾·á À§Ä¡¿Í °°Àº°¡, ±× ÀÌÈÄÀÎ °æ¿ì
NullPointerException - newParagraph °¡ null ÀÇ °æ¿ì
°ü·Ã Ç׸ñ:
deleteChar(java.text.AttributedCharacterIterator, int)

deleteChar

public void deleteChar(AttributedCharacterIterator  newParagraph,
                       int deletePos)
ÅØ½ºÆ®·ÎºÎÅÍ Ä³¸¯ÅͰ¡ 1 °³ »èÁ¦µÈ µÚ¿¡ LineBreakMeasurer ¸¦ °»½ÅÇØ, ÇöÀçÀÇ À§Ä¡¸¦ ±× ´Ü¶ôÀÇ ¼±µÎ·Î ¼³Á¤ÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
newParagraph - »èÁ¦ ÈÄÀÇ ÅØ½ºÆ®
deletePos - ÅØ½ºÆ®³»ÀÇ, ij¸¯ÅͰ¡ »èÁ¦µÈ À§Ä¡
¿¹¿Ü:
IndexOutOfBoundsException - deletePos °¡ newParagraph ÀÇ °³½Ã À§Ä¡º¸´Ù Àü, ¶Ç´Â newParagraph ÀÇ Á¾·á À§Ä¡¿¡¼­(º¸´Ù) µÚÀÎ °æ¿ì
NullPointerException - newParagraph °¡ null ÀÇ °æ¿ì
°ü·Ã Ç׸ñ:
insertChar(java.text.AttributedCharacterIterator, int)

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

¹ö±×ÀÇ º¸°í¿Í ±â´ÉÀÇ ¸®Äù½ºÆ®
ÀÌ¿ÜÀÇ API ·¹ÆÛ·±½º ¹× °³¹ßÀÚ¿ë ¹®¼­¿¡ ´ëÇØ¼­´Â Java 2 SDK SE °³¹ßÀÚ¿ë ¹®¼­¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °³¹ßÀÚÀü¿ëÀÇ »ó¼¼ÇÑ ÇØ¼³, °³³äÀÇ °³¿ä, ¿ë¾îÀÇ Á¤ÀÇ, ¹ö±×ÀÇ È¸ÇÇÃ¥, ¹× ÄÚµå ½Ç·Ê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

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.