在java中e.getActionCommand()和e.getLabel()是什么意思?有什么区别?还有e.equal()和e.getSource()??? 5

 我来答
多尔菲斯
推荐于2018-05-15
知道答主
回答量:11
采纳率:0%
帮助的人:6126
展开全部
getActionCommand()和getLabel()都是返回按钮的命令名或者说标签名,不同的是getActionConmand()在接口方法actionPerformed重定义调用,而getLabel()在任何地方都可以使用。equals()用来进行比较,不同的类会有不同返回值,e。getSource()返回引发该事件的那个事件源也就是那个组件。
tyrocjl
2018-05-12
知道答主
回答量:27
采纳率:100%
帮助的人:4万
展开全部

我用eclipse查java源码给你解释一下这个问题。e是ActionEvent的一个引用的前提下进行解释。

java源码中关于getActionCommand的定义如下(在eclipse中按住Ctrl左键点击方法名):

    /**

     * Returns the command string associated with this action.

     * This string allows a "modal" component to specify one of several

     * commands, depending on its state. For example, a single button might

     * toggle between "show details" and "hide details". The source object

     * and the event would be the same in each case, but the command string

     * would identify the intended action.

     * <p>

     * Note that if a <code>null</code> command string was passed

     * to the constructor for this <code>ActionEvent</code>, this

     * this method returns <code>null</code>.

     *

     * @return the string identifying the command for this event

     */

    public String getActionCommand() {

        return actionCommand;

    }

该方法直接返回一个actionCommand属性。直接查看该属性源码如下:

    /**
     * The nonlocalized string that gives more details
     * of what actually caused the event.
     * This information is very specific to the component
     * that fired it.
     * @serial
     * @see #getActionCommand
     */
    String actionCommand;

java源码对此的解释是,这个属性是ActionEvent中的一个属性,它详细的描述了具体是哪一个组件引发了该次事件。比如是button,这个按钮上显示的是“提交”,那最后你通过e.getActionCommand得到的就是“提交”。

对于你说的e.getLabel,e是一个ActionEvent,ActionEvent及其父类以及其实现的接口,没有getLabel这个方法。你想表达的应该是e.getSource.getLabel吧。如果是,那么在下面我给你说一下他俩的区别。

e.getSource是ActionEvent的方法,该方法返回一个对象的引用,该引用指向触发时间的对象。简单来说,可以这么理解,getSource间接地得到了这个button的一切,但你还不知道它到底是那个button,需要用button的方法——getLabel来看一下它到底是哪个button。就好像你踢足球踢碎了学校的玻璃,安保主任捡到了写着你的学号的足球(假定每个人的足球上都有每个人的学号),主任拿到了你的学号,就间接地得到了你的一切信息(年级,姓名,班级,班主任,父母等)相当于e.getSource得到了button的引用,但只有学号,并不能确定你,需要去教务处查一下,这个过程相当于button.getLabel,得到你的姓名。纯手打,请采纳。到了打字上限不能在说了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-24
展开全部
深层次的输出异常调用的流程。 比方说最终显示的是个NullPointException,用 e.printStackTrace() 就可以输出整个调用流程,比方说是 main 方法调用了某个类,这个类又初始化了一个值,然后再××××的,最后到出错这行代码抛出个异常。 希望能帮到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenguan1990
2012-03-23 · 超过12用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:35万
展开全部
只知道e.getSource()是得到事件源,即你操作了哪个控件
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式