JavaTM 2 Platform
Standard Ed. 5.0

java.awt.font
Ŭ·¡½º LineBreakMeasurer

java.lang.Object 
  »óÀ§¸¦ È®Àå java.awt.font.LineBreakMeasurer

public final class LineBreakMeasurer
extends Object

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
 

»ý¼ºÀÚ »ó¼¼

LineBreakMeasurer

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)

LineBreakMeasurer

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

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ÀÎ °æ¿ì, Àû¾îµµ ÇöÀçÀÇ À§Ä¡¿¡ ÀÖ´Â ¹®ÀÚ¸¦ Æ÷ÇÔÇÑ, À¯È¿ÇÑ ·¹À̾ƿôÀÌ ¸®ÅϵȴÙ
¹Ýȯ°ª:
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)
ÅؽºÆ®¿¡ ¹®ÀÚ°¡ 1°³ »ðÀÔµÈ µÚ¿¡ LineBreakMeasurer¸¦ °»½ÅÇØ, ÇöÀçÀÇ À§Ä¡¸¦ ±× ´Ü¶ôÀÇ ¼±µÎ·Î ¼³Á¤ÇÕ´Ï´Ù.

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

deleteChar

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

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

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.