下面列出了javax.swing.text.DefaultEditorKit#upAction ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Move/select caret left/right/up/down by directions WEST/EAST/NORTH/SOUTH from SwingConstants.
*
* @param context
* @param direction
* @throws Exception
*/
public static void moveOrSelect(Context context, int direction, boolean select) throws Exception {
JEditorPane pane = context.getInstance(JEditorPane.class);
String actionName;
String directionName;
String debugDirection;
switch (direction) {
case SwingConstants.WEST:
actionName = select ? DefaultEditorKit.selectionBackwardAction : DefaultEditorKit.backwardAction;
directionName = "left";
debugDirection = "SwingConstants.WEST";
break;
case SwingConstants.EAST:
actionName = select ? DefaultEditorKit.selectionForwardAction : DefaultEditorKit.forwardAction;
directionName = "right";
debugDirection = "SwingConstants.EAST";
break;
case SwingConstants.NORTH:
actionName = select ? DefaultEditorKit.selectionUpAction : DefaultEditorKit.upAction;
directionName = "up";
debugDirection = "SwingConstants.NORTH";
break;
case SwingConstants.SOUTH:
actionName = select ? DefaultEditorKit.selectionDownAction : DefaultEditorKit.downAction;
directionName = "down";
debugDirection = "SwingConstants.SOUTH";
break;
default:
throw new IllegalStateException("Invalid direction=" + direction); // NOI18N
}
StringBuilder sb = null;
if (context.isLogOp()) {
sb = context.logOpBuilder();
sb.append(select ? "Selection" : "Cursor").append(' ').append(directionName).append("\n");
debugCaret(sb, pane).append(" => ");
sb.append("moveOrSelect(context, ").append(debugDirection).append(", ").append(select).append(")");
sb.append(" => "); // Fill in after action gets performed
}
performAction(context, pane, actionName, null, false);
if (context.isLogOp()) {
debugCaret(sb, pane);
context.logOp(sb);
}
}