|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class TextLayout extends Object implements Cloneable
TextLayout неизменное графическое изображение стилизованных символьных данных. Это обеспечивает следующие возможности:
A TextLayout объект может быть представлен, используя draw метод.
TextLayout может быть создан или непосредственно или с помощью a LineBreakMeasurer. Когда создано непосредственно, исходный текст представляет единственный абзац. LineBreakMeasurer позволяет разработанному тексту быть поврежденным в строки, которые соответствуют в пределах определенного width. См. LineBreakMeasurer документация для получения дополнительной информации.
TextLayout конструкция логически продолжается следующим образом:
TextAttribute.FONT присутствует, иначе вычисляя шрифт значения по умолчанию, используя атрибуты, которые были определены Вся графическая информация возвратилась из a TextLayout методы объекта относительно источника TextLayout, который является пересечением TextLayout базовая линия объекта с ее левым краем. Кроме того, координаты передают в a TextLayout методы объекта, как предполагается, относительно TextLayout источник объекта. Клиенты обычно должны преобразовывать между a TextLayout система координат объекта и система координат в другом объекте (таком как a Graphics объект).
TextLayout объекты создаются из стилизованного текста, но они не сохраняют ссылку на свой исходный текст. Таким образом, изменения в тексте, ранее используемом, чтобы генерировать a TextLayout не влияйте TextLayout.
Три метода на a TextLayout объект (getNextRightHit, getNextLeftHit, и hitTestChar) возвратите экземпляры TextHitInfo. Смещения содержатся в них TextHitInfo объекты относительно запуска TextLayout, не к тексту, используемому, чтобы создать TextLayout. Точно так же TextLayout методы, которые принимают TextHitInfo экземпляры как параметры ожидают TextHitInfo смещения объекта, чтобы быть относительно TextLayout, не к любой базовой текстовой модели хранения.
Примеры:
Построение и рисунок a TextLayout и его ограничительный прямоугольник:
Graphics2D g = ...;
Point2D loc = ...;
Font font = Font.getFont("Helvetica-bold-italic");
FontRenderContext frc = g.getFontRenderContext();
TextLayout layout = new TextLayout("This is a string", font, frc);
layout.draw(g, (float)loc.getX(), (float)loc.getY());
Rectangle2D bounds = layout.getBounds();
bounds.setRect(bounds.getX()+loc.getX(),
bounds.getY()+loc.getY(),
bounds.getWidth(),
bounds.getHeight());
g.draw(bounds);
Тестирование хита a TextLayout (определение, которое символ в определенном графическом расположении):
Point2D click = ...;
TextHitInfo hit = layout.hitTestChar(
(float) (click.getX() - loc.getX()),
(float) (click.getY() - loc.getY()));
Отвечание на нажатие клавиши со стрелкой вправо:
int insertionIndex = ...;
TextHitInfo next = layout.getNextRightHit(insertionIndex);
if (next != null) {
// translate graphics to origin of layout on screen
g.translate(loc.getX(), loc.getY());
Shape[] carets = layout.getCaretShapes(next.getInsertionIndex());
g.draw(carets[0]);
if (carets[1] != null) {
g.draw(carets[1]);
}
}
Рисование диапазона выбора, соответствующего подстроке в исходном тексте. Выбранная область, возможно, не визуально непрерывна:
// selStart, selLimit should be relative to the layout, // not to the source text int selStart = ..., selLimit = ...; Color selectionColor = ...; Shape selection = layout.getLogicalHighlightShape(selStart, selLimit); // selection may consist of disjoint areas // graphics is assumed to be tranlated to origin of layout g.setColor(selectionColor); g.fill(selection);
Рисование визуально непрерывного диапазона выбора. Диапазон выбора может соответствовать больше чем одной подстроке в исходном тексте. Диапазоны соответствующих исходных текстовых подстрок могут быть получены с getLogicalRangesForVisualSelection():
TextHitInfo selStart = ..., selLimit = ...; Shape selection = layout.getVisualHighlightShape(selStart, selLimit); g.setColor(selectionColor); g.fill(selection); int[] ranges = getLogicalRangesForVisualSelection(selStart, selLimit); // ranges[0], ranges[1] is the first selection range, // ranges[2], ranges[3] is the second selection range, etc.
Отметьте: вращения Шрифта могут заставить текстовые базовые линии быть повернутыми, и многократные выполнения с различными вращениями могут заставить базовую линию изгибаться или делать зигзаги. Чтобы учесть эту (редкую) возможность, некоторые API определяются, чтобы возвратить метрики и взять параметры 'в базово-относительных координатах (например, подъем, усовершенствование), и другие находятся в 'в стандартных координатах (например, getBounds). Значения в базово-относительных координатах отображают координату 'x' на расстояние вдоль базовой линии, (положительный x вперед приезжает, базовая линия), и координата 'y' к расстоянию вдоль перпендикуляра к базовой линии в 'x' (postitive y составляет 90 градусов по часовой стрелке от базового вектора). Значения в стандартных координатах измеряются вдоль x и осей Y, с 0,0 в источнике TextLayout. Документация для каждого соответствующего API указывает на то, какие значения находятся в какой система координат. Вообще, связанные с измерением API находятся в базово-относительных координатах, в то время как связанные с дисплеем API находятся в стандартных координатах.
LineBreakMeasurer, TextAttribute, TextHitInfo, LayoutPath| Модификатор и Тип | Класс и Описание |
|---|---|
static class |
TextLayout. CaretPolicy
Определяет политику для того, чтобы определить расположение каре strong.
|
| Модификатор и Тип | Поле и Описание |
|---|---|
static TextLayout.CaretPolicy |
DEFAULT_CARET_POLICY
Это
CaretPolicy используется, когда политика не определяется клиентом. |
| Конструктор и Описание |
|---|
TextLayout(AttributedCharacterIterator text, FontRenderContext frc)
Конструкции a
TextLayout от iterator по стилизованному тексту. |
TextLayout(String string, Font font, FontRenderContext frc)
|
TextLayout(String string, Map<? extends AttributedCharacterIterator.Attribute,?> attributes, FontRenderContext frc)
Конструкции a
TextLayout от a String и атрибут устанавливается. |
| Модификатор и Тип | Метод и Описание |
|---|---|
protected Object |
clone()
Создает копию этого
TextLayout. |
void |
draw(Graphics2D g2, float x, float y)
Представляет это
TextLayout в указанном расположении в указанном Graphics2D контекст. |
boolean |
equals(Object obj)
Возвраты
true если указанное Object a TextLayout возразите и если указанное Object равняется этому TextLayout. |
boolean |
equals(TextLayout rhs)
Возвраты
true если эти две разметки равны. |
float |
getAdvance()
Возвращает усовершенствование этого
TextLayout. |
float |
getAscent()
Возвращает подъем этого
TextLayout. |
byte |
getBaseline()
Возвращает базовую линию для этого
TextLayout. |
float[] |
getBaselineOffsets()
Возвращает массив смещений для базовых линий, используемых для этого
TextLayout. |
Форма |
getBlackBoxBounds(int firstEndpoint, int secondEndpoint)
Возвращает границы черного квадрата символов в указанном диапазоне.
|
Rectangle2D |
getBounds()
Возвращает границы этого
TextLayout. |
float[] |
getCaretInfo(TextHitInfo hit)
Информация о возвратах о соответствии каре
hit. |
float[] |
getCaretInfo(TextHitInfo hit, Rectangle2D bounds)
Информация о возвратах о соответствии каре
hit. |
Форма |
getCaretShape(TextHitInfo hit)
Возвраты a
Shape представление каре при указанном хите в естественных границах этого TextLayout. |
Форма |
getCaretShape(TextHitInfo hit, Rectangle2D bounds)
Возвраты a
Shape представление каре при указанном хите в указанных границах. |
Форма[] |
getCaretShapes(int offset)
Возвраты два пути, соответствующие strong и слабому каре.
|
Форма[] |
getCaretShapes(int offset, Rectangle2D bounds)
Возвраты два пути, соответствующие strong и слабому каре.
|
Форма[] |
getCaretShapes(int offset, Rectangle2D bounds, TextLayout.CaretPolicy policy)
Возвраты два пути, соответствующие strong и слабому каре.
|
int |
getCharacterCount()
Возвращает число символов, представленных этим
TextLayout. |
byte |
getCharacterLevel(int index)
Возвращает уровень символа в
index. |
float |
getDescent()
Возвращает спуск этого
TextLayout. |
TextLayout |
getJustifiedLayout(float justificationWidth)
Создает копию этого
TextLayout выровненный по ширине к указанному width. |
LayoutPath |
getLayoutPath()
Возвратите LayoutPath, или нуль, если путь расположения является путем значения по умолчанию (x отображается на усовершенствование, y, отображается на смещение).
|
float |
getLeading()
Возвращает продвижение
TextLayout. |
Форма |
getLogicalHighlightShape(int firstEndpoint, int secondEndpoint)
Возвраты a
Shape включение логического выбора в указанном диапазоне, расширенном на естественные границы этого TextLayout. |
Форма |
getLogicalHighlightShape(int firstEndpoint, int secondEndpoint, Rectangle2D bounds)
Возвраты a
Shape включение логического выбора в указанном диапазоне, расширенном на указанное bounds. |
int[] |
getLogicalRangesForVisualSelection(TextHitInfo firstEndpoint, TextHitInfo secondEndpoint)
Возвращает логические диапазоны текста, соответствующего визуальному выбору.
|
TextHitInfo |
getNextLeftHit(int offset)
Возвращает хит для следующего каре к левому (вершина); если никакой такой хит, возвраты
null. |
TextHitInfo |
getNextLeftHit(int offset, TextLayout.CaretPolicy policy)
Возвращает хит для следующего каре к левому (вершина); если никакой такой хит, возвраты
null. |
TextHitInfo |
getNextLeftHit(TextHitInfo hit)
Возвращает хит для следующего каре к левому (вершина); если никакой такой хит, возвраты
null. |
TextHitInfo |
getNextRightHit(int offset)
Возвращает хит для следующего каре к праву (нижняя часть); если никакой такой хит, возвраты
null. |
TextHitInfo |
getNextRightHit(int offset, TextLayout.CaretPolicy policy)
Возвращает хит для следующего каре к праву (нижняя часть); если никакой такой хит, возвраты
null. |
TextHitInfo |
getNextRightHit(TextHitInfo hit)
Возвращает хит для следующего каре к праву (нижняя часть); если нет такого хита, возвратов
null. |
Форма |
getOutline(AffineTransform tx)
Возвраты a
Shape представление схемы этого TextLayout. |
Прямоугольник |
getPixelBounds(FontRenderContext frc, float x, float y)
Возвращает пиксельные границы этого
TextLayout когда представлено в графике с данным FontRenderContext в данном расположении. |
float |
getVisibleAdvance()
Возвращает усовершенствование этого
TextLayout, минус запаздывающий пробел. |
Форма |
getVisualHighlightShape(TextHitInfo firstEndpoint, TextHitInfo secondEndpoint)
Возвраты a
Shape включение визуального выбора в указанном диапазоне, расширенном на границы. |
Форма |
getVisualHighlightShape(TextHitInfo firstEndpoint, TextHitInfo secondEndpoint, Rectangle2D bounds)
Возвращает путь, включающий визуальный выбор в указанный диапазон, расширенный на
bounds. |
TextHitInfo |
getVisualOtherHit(TextHitInfo hit)
Возвращает хит на противоположной стороне каре указанного хита.
|
protected void |
handleJustify(float justificationWidth)
Выровняйте по ширине это расположение.
|
int |
hashCode()
Возвращает хэш-код этого
TextLayout. |
TextHitInfo |
hitTestChar(float x, float y)
Возвраты a
TextHitInfo соответствие указанной точке. |
TextHitInfo |
hitTestChar(float x, float y, Rectangle2D bounds)
Возвраты a
TextHitInfo соответствие указанной точке. |
void |
hitToPoint(TextHitInfo hit, Point2D point)
Преобразуйте хит в точку в стандартных координатах.
|
boolean |
isLeftToRight()
Возвраты
true если это TextLayout имеет слева направо основное направление или false если у этого есть справа налево основное направление. |
boolean |
isVertical()
Возвраты
true если это TextLayout вертикаль. |
Строка |
toString()
Отладочная информация возвратов для этого
TextLayout. |
public static final TextLayout.CaretPolicy DEFAULT_CARET_POLICY
CaretPolicy используется, когда политика не определяется клиентом. С этой политикой хит на символе, направление которого является тем же самым как направлением строки, более силен чем хит на противонаправленном символе. Если направления символов являются тем же самым, хит на переднем крае символа более силен чем хит на запаздывающем краю символа.public TextLayout(String string, Font font, FontRenderContext frc)
TextLayout от a String и a Font. Весь текст разрабатывается, используя указанное Font. String должен определить единственный абзац текста, потому что весь абзац требуется для двунаправленного алгоритма.
string - текст, чтобы вывести на экранfont - a Font используемый, чтобы разработать текстfrc - содержит информацию о графическом устройстве, которое необходимо, чтобы измерить текст правильно. Текстовые измерения могут измениться немного в зависимости от разрешения устройства, и атрибутов, таких как сглаживание. Этот параметр не определяет преобразование между TextLayout и пространство пользователя.public TextLayout(String string, Map<? extends AttributedCharacterIterator.Attribute,?> attributes, FontRenderContext frc)
TextLayout от a String и атрибут устанавливается. Весь текст разрабатывается, используя обеспеченные атрибуты.
string должен определить единственный абзац текста, потому что весь абзац требуется для двунаправленного алгоритма.
string - текст, чтобы вывести на экранattributes - атрибуты, используемые, чтобы разработать текстfrc - содержит информацию о графическом устройстве, которое необходимо, чтобы измерить текст правильно. Текстовые измерения могут измениться немного в зависимости от разрешения устройства, и атрибутов, таких как сглаживание. Этот параметр не определяет преобразование между TextLayout и пространство пользователя.public TextLayout(AttributedCharacterIterator text, FontRenderContext frc)
TextLayout от iterator по стилизованному тексту. iterator должен определить единственный абзац текста, потому что весь абзац требуется для двунаправленного алгоритма.
text - стилизованный текст, чтобы вывести на экранfrc - содержит информацию о графическом устройстве, которое необходимо, чтобы измерить текст правильно. Текстовые измерения могут измениться немного в зависимости от разрешения устройства, и атрибутов, таких как сглаживание. Этот параметр не определяет преобразование между TextLayout и пространство пользователя.protected Object clone()
TextLayout.public TextLayout getJustifiedLayout(float justificationWidth)
TextLayout выровненный по ширине к указанному width. Если это TextLayout был уже выровнен по ширине, исключение выдается. Если это TextLayout отношение выравнивания объекта является нулем, a TextLayout идентичный этому TextLayout возвращается.
justificationWidth - width, чтобы использовать, выравнивая строку. Для лучших результатов это не должно слишком отличаться от текущего усовершенствования строки.TextLayout выровненный по ширине к указанному width.Error - если это расположение было уже выровнено по ширине, Ошибка бросается.protected void handleJustify(float justificationWidth)
Некоторый код может положиться на immutablity разметок. Подклассификаторы не должны вызвать это непосредственно, но вместо этого должны вызвать getJustifiedLayout, который вызовет этот метод на клоне этого расположения, сохраняя оригинал.
justificationWidth - width, чтобы использовать, выравнивая строку. Для лучших результатов это не должно слишком отличаться от текущего усовершенствования строки.getJustifiedLayout(float)public byte getBaseline()
TextLayout. Базовая линия является одним из значений, определенных в Font, которые являются римскими, центрируются и зависание. Подъем и спуск относительно этой базовой линии. baselineOffsets также относительно этой базовой линии.TextLayout.getBaselineOffsets(), Fontpublic float[] getBaselineOffsets()
TextLayout. Массив индексируется одним из значений, определенных в Font, которые являются римскими, центрируются и зависание. Значения относительно этого TextLayout базовая линия объекта, так, чтобы getBaselineOffsets[getBaseline()] == 0. Смещения добавляются к позиции TextLayout базовая линия объекта, чтобы получить позицию для новой базовой линии.
TextLayout.getBaseline(), Fontpublic float getAdvance()
TextLayout. Усовершенствование является расстоянием от источника до усовершенствования самого правого (самого нижнего) символа. Это находится в базово-относительных координатах.TextLayout.public float getVisibleAdvance()
TextLayout, минус запаздывающий пробел. Это находится в базово-относительных координатах.TextLayout без запаздывающего пробела.getAdvance()public float getAscent()
TextLayout. Подъем является расстоянием от вершины (право) на TextLayout к базовой линии. Это всегда или положительно или нуль. Подъем достаточен, чтобы разместить преобразованный в верхний индекс текст и является максимумом суммы подъема, смещения, и базовой линии каждого глифа. Подъем является максимальным подъемом от базовой линии всего текста в TextLayout. Это находится в базово-относительных координатах.TextLayout.public float getDescent()
TextLayout. Спуск является расстоянием от базовой линии до нижней части (оставленной) TextLayout. Это всегда или положительно или нуль. Спуск достаточен, чтобы разместить преобразованный в нижний индекс текст и является максимумом суммы спуска, смещения, и базовой линии каждого глифа. Это - максимальный спуск от базовой линии всего текста в TextLayout. Это находится в базово-относительных координатах.TextLayout.public float getLeading()
TextLayout. Продвижение является предложенным интервалом шпона для этого TextLayout. Это находится в базово-относительных координатах. Продвижение вычисляется от продвижения, спуска, и базовой линии всего glyphvectors в TextLayout. Алгоритм примерно следующие:
maxD = 0;
maxDL = 0;
for (GlyphVector g in all glyphvectors) {
maxD = max(maxD, g.getDescent() + offsets[g.getBaseline()]);
maxDL = max(maxDL, g.getDescent() + g.getLeading() +
offsets[g.getBaseline()]);
}
return maxDL - maxD;
TextLayout.public Rectangle2D getBounds()
TextLayout. Границы находятся в стандартных координатах. Из-за эффектов растеризации, это ограничивает, не мог бы включить все пиксели, представленные TextLayout.
Это не могло бы совпасть точно с подъемом, спуском, источником или усовершенствованиемTextLayout.Rectangle2D это - границы этого TextLayout.public Rectangle getPixelBounds(FontRenderContext frc, float x, float y)
TextLayout когда представлено в графике с данным FontRenderContext в данном расположении. Графика представляет контекст, не должно быть то же самое как FontRenderContext используемый, чтобы создать это TextLayout, и может быть нуль. Если это - нуль, FontRenderContext из этого TextLayout используется.frc - FontRenderContext из Graphics.x - x-координата, в которой можно представить это TextLayout.y - y-координата, в которой можно представить это TextLayout.Rectangle ограничение пикселей, на которые влияли бы.GlyphVector.getPixelBounds(java.awt.font.FontRenderContext, float, float)public boolean isLeftToRight()
true если это TextLayout имеет слева направо основное направление или false если у этого есть справа налево основное направление. TextLayout имеет основное направление или слева направо (LTR) или справа налево (RTL). Основное направление независимо от фактического направления текста на строке, которая может быть или LTR, RTL, или смешанный. Слева направо разметки по умолчанию должны расположить выравнивание по левой границе. Если расположение находится на снабженной вкладками строке, вкладки, выполненные слева направо, так, чтобы логически последовательная позиция разметок слева направо. Противоположность является истиной для разметок RTL. По умолчанию они должны расположить выравнивание по левой границе, и вкладки, выполненные справа налево.true если основное направление этого TextLayout слева направо; false иначе.public boolean isVertical()
true если это TextLayout вертикаль.true если это TextLayout вертикаль; false иначе.public int getCharacterCount()
TextLayout.TextLayout.public float[] getCaretInfo(TextHitInfo hit, Rectangle2D bounds)
hit. Первый элемент массива является пересечением каре с базовой линией как расстояние вдоль базовой линии. Второй элемент массива является обратным наклоном (выполнение/повышение) каре, измеренного относительно базовой линии в той точке. Этот метод предназначается для информационного использования. Чтобы вывести на экран каре, лучше использовать getCaretShapes.
hit - хит на символе в этом TextLayoutbounds - границы, к которым создается информация каре. Границы находятся в базово-относительных координатах.getCaretShapes(int, Rectangle2D, TextLayout.CaretPolicy), Font.getItalicAngle()public float[] getCaretInfo(TextHitInfo hit)
hit. Этот метод является перегрузкой удобства getCaretInfo и использует естественные границы этого TextLayout.hit - хит на символе в этом TextLayoutpublic TextHitInfo getNextRightHit(TextHitInfo hit)
null. Если символ хита индексирует, за пределы, IllegalArgumentException бросается.hit - хит на символе в этом расположенииnull.public TextHitInfo getNextRightHit(int offset, TextLayout.CaretPolicy policy)
null. Хит направо от каре strong при указанном смещении, как определено указанной политикой. Возвращенный хит является более сильными из двух возможных хитов, как определено указанной политикой.offset - вставка смещается в этом TextLayout. Не могут быть меньше чем 0 или больше чем это TextLayout символьное количество объекта.policy - политика, используемая, чтобы выбрать каре strongnull.public TextHitInfo getNextRightHit(int offset)
null. Хит направо от каре strong при указанном смещении, как определено политикой значения по умолчанию. Возвращенный хит является более сильными из двух возможных хитов, как определено политикой значения по умолчанию.offset - вставка смещается в этом TextLayout. Не могут быть меньше чем 0 или больше чем TextLayout символьное количество объекта.null.public TextHitInfo getNextLeftHit(TextHitInfo hit)
null. Если символ хита индексирует, за пределы, IllegalArgumentException бросается.hit - хит на символе в этом TextLayout.null.public TextHitInfo getNextLeftHit(int offset, TextLayout.CaretPolicy policy)
null. Хит налево от каре strong при указанном смещении, как определено указанной политикой. Возвращенный хит является более сильными из двух возможных хитов, как определено указанной политикой.offset - вставка смещается в этом TextLayout. Не могут быть меньше чем 0 или больше чем это TextLayout символьное количество объекта.policy - политика, используемая, чтобы выбрать каре strongnull.public TextHitInfo getNextLeftHit(int offset)
null. Хит налево от каре strong при указанном смещении, как определено политикой значения по умолчанию. Возвращенный хит является более сильными из двух возможных хитов, как определено политикой значения по умолчанию.offset - вставка смещается в этом TextLayout. Не могут быть меньше чем 0 или больше чем это TextLayout символьное количество объекта.null.public TextHitInfo getVisualOtherHit(TextHitInfo hit)
hit - указанный хитpublic Shape getCaretShape(TextHitInfo hit, Rectangle2D bounds)
Shape представление каре при указанном хите в указанных границах.hit - напавший, чтобы генерировать кареbounds - границы TextLayout использовать в генерировании каре. Границы находятся в базово-относительных координатах.Shape представление каре. Возвращенная форма находится в стандартных координатах.public Shape getCaretShape(TextHitInfo hit)
Shape представление каре при указанном хите в естественных границах этого TextLayout.hit - напавший, чтобы генерировать кареShape представление каре. Возвращенная форма находится в стандартных координатах.public byte getCharacterLevel(int index)
index. Индексы-1 и characterCount присваиваются основной уровень этого TextLayout.index - индексирование символа, от которого можно получить уровеньpublic Shape[] getCaretShapes(int offset, Rectangle2D bounds, TextLayout.CaretPolicy policy)
offset - смещение в этом TextLayoutbounds - границы, до которых можно расширить каре. Границы находятся в базово-относительных координатах.policy - указанное CaretPolicynull. Возвращенные формы находятся в стандартных координатах.public Shape[] getCaretShapes(int offset, Rectangle2D bounds)
getCaretShapes это использует политику каре значения по умолчанию.offset - смещение в этом TextLayoutbounds - границы, до которых можно расширить каре. Это находится в базово-относительных координатах.DEFAULT_CARET_POLICY. Они находятся в стандартных координатах.public Shape[] getCaretShapes(int offset)
getCaretShapes это использует политику каре значения по умолчанию и это TextLayout естественные границы объекта.offset - смещение в этом TextLayoutDEFAULT_CARET_POLICY. Они находятся в стандартных координатах.public int[] getLogicalRangesForVisualSelection(TextHitInfo firstEndpoint, TextHitInfo secondEndpoint)
firstEndpoint - конечная точка визуального диапазонаsecondEndpoint - другая конечная точка визуального диапазона. Эта конечная точка может быть меньше чем firstEndpoint.getVisualHighlightShape(TextHitInfo, TextHitInfo, Rectangle2D)public Shape getVisualHighlightShape(TextHitInfo firstEndpoint, TextHitInfo secondEndpoint, Rectangle2D bounds)
bounds. Если выбор включает крайнюю левую (самую верхнюю) позицию, выбор расширяется на левое (вершина) bounds. Если выбор включает самую правую (самую нижнюю) позицию, выбор расширяется на право (нижняя часть) границ. height (width на вертикальных строках) выбора всегда расширяется на bounds.
Хотя выбор всегда непрерывен, логически выбранный текст может быть несмежным на строках с текстом смешанного направления. Логические диапазоны выбранного текста могут быть получены, используя getLogicalRangesForVisualSelection. Например, считайте текст 'ABCdef', где прописные буквы указывают справа налево на текст, представленный на справа налево строка, с визуальным выбором от 0L (передний край) к 3T (запаздывающий край 'd'). Текст появляется следующим образом с полужирными подчеркнутыми областями, представляющими выбор:
defCBA
Логические диапазоны выбора 0-3, 4-6 (ABC, ef), потому что визуально непрерывный текст является логически несмежным. Также отметьте, что, так как самая правая позиция на расположении (направо от) выбирается, выбор расширяется направо от границ.firstEndpoint - один конец визуального выбораsecondEndpoint - другой конец визуального выбораbounds - ограничительный прямоугольник, до которого можно расширить выбор. Это находится в базово-относительных координатах.Shape включение выбора. Это находится в стандартных координатах.getLogicalRangesForVisualSelection(TextHitInfo, TextHitInfo), getLogicalHighlightShape(int, int, Rectangle2D)public Shape getVisualHighlightShape(TextHitInfo firstEndpoint, TextHitInfo secondEndpoint)
Shape включение визуального выбора в указанном диапазоне, расширенном на границы. Этот метод является перегрузкой удобства getVisualHighlightShape это использует естественные границы этого TextLayout.firstEndpoint - один конец визуального выбораsecondEndpoint - другой конец визуального выбораShape включение выбора. Это находится в стандартных координатах.public Shape getLogicalHighlightShape(int firstEndpoint, int secondEndpoint, Rectangle2D bounds)
Shape включение логического выбора в указанном диапазоне, расширенном на указанное bounds. Если диапазон выбора включает первый логический символ, выбор расширяется на часть bounds перед запуском этого TextLayout. Если диапазон включает последний логический символ, выбор расширяется на часть bounds после конца этого TextLayout. height (width на вертикальных строках) выбора всегда расширяется на bounds.
Выбор может быть несмежным на строках с текстом смешанного направления. Только те символы в логическом диапазоне между запуском и пределом кажутся выбранными. Например, считайте текст 'ABCdef', где прописные буквы указывают справа налево на текст, представленный на справа налево строка, с логическим выбором от 0 до 4 ('ABCd'). Текст появляется следующим образом с полужирным положением в для выбора, и подчеркивания для расширения:
defCBA
Выбор является несмежным, потому что выбранные символы являются визуально несмежными. Также отметьте, что, так как диапазон включает первый логический символ (A), выбор расширяется на часть bounds перед запуском расположения, которое в этом случае (справа налево строка) является правильной частью bounds.firstEndpoint - конечная точка в диапазоне символов, чтобы выбратьsecondEndpoint - другая конечная точка диапазона символов, чтобы выбрать. Могут быть меньше чем firstEndpoint. Диапазон включает символ в минуту (firstEndpoint, secondEndpoint), но исключает максимальный (firstEndpoint, secondEndpoint).bounds - ограничительный прямоугольник, до которого можно расширить выбор. Это находится в базово-относительных координатах.getVisualHighlightShape(TextHitInfo, TextHitInfo, Rectangle2D)public Shape getLogicalHighlightShape(int firstEndpoint, int secondEndpoint)
Shape включение логического выбора в указанном диапазоне, расширенном на естественные границы этого TextLayout. Этот метод является перегрузкой удобства getLogicalHighlightShape это использует естественные границы этого TextLayout.firstEndpoint - конечная точка в диапазоне символов, чтобы выбратьsecondEndpoint - другая конечная точка диапазона символов, чтобы выбрать. Могут быть меньше чем firstEndpoint. Диапазон включает символ в минуту (firstEndpoint, secondEndpoint), но исключает максимальный (firstEndpoint, secondEndpoint).Shape включение выбора. Это находится в стандартных координатах.public Shape getBlackBoxBounds(int firstEndpoint, int secondEndpoint)
firstEndpoint - один конец диапазона символовsecondEndpoint - другой конец диапазона символов. Могут быть меньше чем firstEndpoint.Shape включение границ черного квадрата. Это находится в стандартных координатах.public TextHitInfo hitTestChar(float x, float y, Rectangle2D bounds)
TextHitInfo соответствие указанной точке. Координаты вне границ TextLayout отобразитесь на хиты на переднем крае первого логического символа, или запаздывающем краю последнего логического символа, как соответствующий, независимо от позиции того символа в строке. Только направление вдоль базовой линии используется, чтобы сделать эту оценку.x - x смещается от источника этого TextLayout. Это находится в стандартных координатах.y - y смещается от источника этого TextLayout. Это находится в стандартных координатах.bounds - границы TextLayout. Это находится в базово-относительных координатах.public TextHitInfo hitTestChar(float x, float y)
TextHitInfo соответствие указанной точке. Этот метод является перегрузкой удобства hitTestChar это использует естественные границы этого TextLayout.x - x смещается от источника этого TextLayout. Это находится в стандартных координатах.y - y смещается от источника этого TextLayout. Это находится в стандартных координатах.public int hashCode()
TextLayout.hashCode в class ObjectTextLayout.Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)public boolean equals(Object obj)
true если указанное Object a TextLayout возразите и если указанное Object равняется этому TextLayout.equals в class Objectobj - Object протестировать на равенствоtrue если указанное Object равняется этому TextLayout; false иначе.Object.hashCode(), HashMappublic boolean equals(TextLayout rhs)
true если эти две разметки равны. Две разметки равны, если они содержат равный glyphvectors в том же самом порядке.rhs - TextLayout сравниться с этим TextLayouttrue если указанное TextLayout равняется этому TextLayout.public String toString()
TextLayout.public void draw(Graphics2D g2, float x, float y)
TextLayout в указанном расположении в указанном Graphics2D контекст. Источник расположения помещается в x, y. Рендеринг может коснуться любой точки в пределах getBounds() из этой позиции. Это листы g2 неизменный. Текст представляется вдоль базового пути.g2 - Graphics2D контекст, в котором можно представить расположениеx - X координат источника этого TextLayouty - координата Y источника этого TextLayoutgetBounds()public Shape getOutline(AffineTransform tx)
Shape представление схемы этого TextLayout.tx - дополнительное AffineTransform применяться к схеме этого TextLayout.Shape это - схема этого TextLayout. Это находится в стандартных координатах.public LayoutPath getLayoutPath()
public void hitToPoint(TextHitInfo hit, Point2D point)
hit - хит, чтобы проверить. Это должно быть допустимым хитом на TextLayout.point - возвращенная точка. Точка находится в стандартных координатах.IllegalArgumentException - если хит не допустим для TextLayout.NullPointerException - если поражено или точка является нулем.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92