下面列出了怎么用javax.swing.text.GlyphView的API类实例代码及写法,或者点击链接到github查看源代码。
public View breakView(int axis, int p0, float pos, float len) {
if (axis == View.X_AXIS) {
checkPainter();
int p1 = getGlyphPainter().getBoundedPosition(this, p0, pos, len);
try {
// if the view contains line break char break the view
int index = getDocument().getText(p0, p1 - p0).indexOf(WrapHTMLFactory.SEPARATOR);
if (index >= 0) {
GlyphView v = (GlyphView)createFragment(p0, p0 + index + 1);
return v;
}
} catch (BadLocationException ex) {
// should never happen
}
}
return super.breakView(axis, p0, pos, len);
}
private void checkKerning(GlyphView v) {
Object testKVal = v.getElement().getAttributes().getAttribute(KEY_KERNING);
if (testKVal != null) {
float kValue;
if (testKVal instanceof Double) {
kValue = ((Double)testKVal).floatValue();
} else if (testKVal instanceof Float) {
kValue = (Float)testKVal;
} else {
kValue = (float)testKVal;
}
for (int i=glyphVector.getNumGlyphs()-1; i>=0; i--) {
Point2D p=glyphVector.getGlyphPosition(i);
p.setLocation(p.getX() + i * kValue, p.getY());
glyphVector.setGlyphPosition(i, p);
}
}
}
/**
* Determine the span the glyphs given a start location
* (for tab expansion).
* @param exp
* @return
*/
@Override
public float getSpan(GlyphView v, int p0, int p1,
TabExpander exp, float x) {
try {
sync(v);
String docText = v.getDocument().getText(p0,p1-p0);
float width = getTabbedTextWidth(v, docText, x, exp, p0, null);
return width;
} catch (BadLocationException e) {
//e.printStackTrace();
IOHandler.writeErrorLog(e, "EXTERNAL CODE");
}
return 0;
}
/**
* Determines the best location (in the model) to break
* the given view.
* This method attempts to break on a whitespace
* location. If a whitespace location can't be found, the
* nearest character location is returned.
*
* @param v the view
* @param p0 the location in the model where the
* fragment should start its representation >= 0
* @param x the graphic location along the axis that the
* broken view would occupy >= 0; this may be useful for
* things like tab calculations
* @param len specifies the distance into the view
* where a potential break is desired >= 0
* @return the model location desired for a break
* @see View#breakView
*/
@Override
public int getBoundedPosition(GlyphView v, int p0, float x, float len) {
int ret;
try {
sync(v);
TabExpander expander = v.getTabExpander();
String s = v.getDocument().getText(p0, v.getEndOffset()-p0);
int index = getTabbedTextOffset(v,s, (int)x, (int)(x+len), expander, p0, false, null);
int p1 = p0 + index;
ret = p1;
} catch (BadLocationException e) {
//e.printStackTrace();
ret = -1;
IOHandler.writeErrorLog(e, "EXTERNAL CODE");
}
return ret;
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}
bug6857057() {
Element elem = new StubBranchElement(" G L Y P H V");
GlyphView view = new GlyphView(elem);
float pos = elem.getStartOffset();
float len = elem.getEndOffset() - pos;
int res = view.getBreakWeight(View.X_AXIS, pos, len);
if (res != View.ExcellentBreakWeight) {
throw new RuntimeException("breakWeight != ExcellentBreakWeight");
}
}
private static void retrieveGlyphViews(View root) {
for (int i=0; i<= root.getViewCount()-1; i++) {
View view = root.getView(i);
if (view instanceof GlyphView && view.isVisible()) {
if (!glyphViews.contains(view)) {
glyphViews.add((GlyphView)view);
}
} else {
retrieveGlyphViews(view);
}
}
}