下面列出了javax.swing.text.View#NORTH 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public int getNextVisualPositionFromChecked(int offset, Bias bias, Shape alloc, int direction, Bias[] biasRet) {
int startOffset = getStartOffset();
int endOffset = startOffset + getLength();
int retOffset = -1;
switch (direction) {
case EAST:
biasRet[0] = Bias.Forward;
if (offset == -1) {
retOffset = getStartOffset();
} else {
retOffset = offset + 1;
if (retOffset >= endOffset) {
retOffset = endOffset;
biasRet[0] = Bias.Backward;
}
}
break;
case WEST:
biasRet[0] = Bias.Forward;
if (offset == -1) {
retOffset = endOffset - 1;
} else {
retOffset = offset - 1;
if (retOffset < startOffset) {
retOffset = -1;
}
}
break;
case View.NORTH:
case View.SOUTH:
break; // Return -1
default:
throw new IllegalArgumentException("Bad direction: " + direction);
}
return retOffset;
}
@Override
public int getNextVisualPositionFromChecked(int offset, Bias bias, Shape alloc, int direction, Bias[] biasRet) {
int retOffset;
biasRet[0] = Bias.Forward; // BaseCaret ignores bias
int viewStartOffset = getStartOffset();
switch (direction) {
case View.EAST:
if (offset == -1) {
retOffset = viewStartOffset;
} else {
retOffset = -1;
}
break;
case View.WEST:
if (offset == -1) {
retOffset = viewStartOffset;
} else if (offset == viewStartOffset) { // Regular offset
retOffset = -1;
} else {
retOffset = viewStartOffset;
}
break;
case View.NORTH:
case View.SOUTH:
retOffset = -1;
break;
default:
throw new IllegalArgumentException("Bad direction: " + direction);
}
return retOffset;
}