|
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.