本文整理汇总了Java中java.awt.font.GlyphJustificationInfo.PRIORITY_NONE属性的典型用法代码示例。如果您正苦于以下问题:Java GlyphJustificationInfo.PRIORITY_NONE属性的具体用法?Java GlyphJustificationInfo.PRIORITY_NONE怎么用?Java GlyphJustificationInfo.PRIORITY_NONE使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类java.awt.font.GlyphJustificationInfo
的用法示例。
在下文中一共展示了GlyphJustificationInfo.PRIORITY_NONE属性的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getJustificationInfos
public void getJustificationInfos(GlyphJustificationInfo[] infos, int infoStart, int charStart, int charLimit) {
// This simple implementation only uses spaces for justification.
// Since regular characters aren't justified, we don't need to deal with
// special infos for combining marks or ligature substitution glyphs.
// added character justification for kanjii only 2/22/98
StandardGlyphVector gv = getGV();
float[] charinfo = getCharinfo();
float size = gv.getFont().getSize2D();
GlyphJustificationInfo nullInfo =
new GlyphJustificationInfo(0,
false, GlyphJustificationInfo.PRIORITY_NONE, 0, 0,
false, GlyphJustificationInfo.PRIORITY_NONE, 0, 0);
GlyphJustificationInfo spaceInfo =
new GlyphJustificationInfo(size,
true, GlyphJustificationInfo.PRIORITY_WHITESPACE, 0, size,
true, GlyphJustificationInfo.PRIORITY_WHITESPACE, 0, size / 4f);
GlyphJustificationInfo kanjiInfo =
new GlyphJustificationInfo(size,
true, GlyphJustificationInfo.PRIORITY_INTERCHAR, size, size,
false, GlyphJustificationInfo.PRIORITY_NONE, 0, 0);
char[] chars = source.getChars();
int offset = source.getStart();
// assume data is 1-1 and either all rtl or all ltr, for now
int numGlyphs = gv.getNumGlyphs();
int minGlyph = 0;
int maxGlyph = numGlyphs;
boolean ltr = (source.getLayoutFlags() & 0x1) == 0;
if (charStart != 0 || charLimit != source.getLength()) {
if (ltr) {
minGlyph = charStart;
maxGlyph = charLimit;
} else {
minGlyph = numGlyphs - charLimit;
maxGlyph = numGlyphs - charStart;
}
}
for (int i = 0; i < numGlyphs; ++i) {
GlyphJustificationInfo info = null;
if (i >= minGlyph && i < maxGlyph) {
if (charinfo[i * numvals + advx] == 0) { // combining marks don't justify
info = nullInfo;
} else {
int ci = v2l(i); // 1-1 assumption again
char c = chars[offset + ci];
if (Character.isWhitespace(c)) {
info = spaceInfo;
// CJK, Hangul, CJK Compatibility areas
} else if (c >= 0x4e00 &&
(c < 0xa000) ||
(c >= 0xac00 && c < 0xd7b0) ||
(c >= 0xf900 && c < 0xfb00)) {
info = kanjiInfo;
} else {
info = nullInfo;
}
}
}
infos[infoStart + i] = info;
}
}