java action类_Java UIAction类代码示例

import sun.swing.UIAction; //导入依赖的package包/类

/**

* Invokes actionPerformed on action if

* action is enabled (and non-{@code null}). The command for the

* ActionEvent is determined by:

*

*

If the action was registered via

* registerKeyboardAction, then the command string

* passed in ({@code null} will be used if {@code null} was passed in).

*

Action value with name Action.ACTION_COMMAND_KEY, unless {@code null}.

*

String value of the KeyEvent, unless getKeyChar

* returns KeyEvent.CHAR_UNDEFINED..

*

* This will return true if action is non-{@code null} and

* actionPerformed is invoked on it.

*

* @since 1.3

*/

public static boolean notifyAction(Action action, KeyStroke ks,

KeyEvent event, Object sender,

int modifiers) {

if (action == null) {

return false;

}

if (action instanceof UIAction) {

if (!((UIAction)action).isEnabled(sender)) {

return false;

}

}

else if (!action.isEnabled()) {

return false;

}

Object commandO;

boolean stayNull;

// Get the command object.

commandO = action.getValue(Action.ACTION_COMMAND_KEY);

if (commandO == null && (action instanceof JComponent.ActionStandin)) {

// ActionStandin is used for historical reasons to support

// registerKeyboardAction with a null value.

stayNull = true;

}

else {

stayNull = false;

}

// Convert it to a string.

String command;

if (commandO != null) {

command = commandO.toString();

}

else if (!stayNull && event.getKeyChar() != KeyEvent.CHAR_UNDEFINED) {

command = String.valueOf(event.getKeyChar());

}

else {

// Do null for undefined chars, or if registerKeyboardAction

// was called with a null.

command = null;

}

action.actionPerformed(new ActionEvent(sender,

ActionEvent.ACTION_PERFORMED, command, event.getWhen(),

modifiers));

return true;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值