当前位置: 首页 > 面试题库 >

addMouseListener或addActionListener或JButton?

贺乐意
2023-03-14
问题内容

定义简单单击JButton的行为时,哪种方法正确?而且,有什么区别?

JButton but = new JButton();
but.addActionListener(new ActionListener() {          
    public void actionPerformed(ActionEvent e) {
         System.out.println("You clicked the button, using an ActionListener");
    }
});

要么

JButton but = new JButton();
but.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
        System.out.println("You clicked the button, using a MouseListenr");
    }
});

问题答案:

MouseListener 是Swing中的低级事件侦听器(顺便说一下,也是AWT)。

ActionListener 是更高级别的,应该使用。

比起更好的选择ActionListener,应该使用javax.swing.Action(实际上是ActionListener)。

使用Action允许在多个小部件(例如JButtonJMenuItem…)之间共享它;您不仅可以共享按下按钮/菜单时触发的代码,还可以共享状态,尤其是可以共享操作(及其关联的小部件)是否处于启用状态。



 类似资料:
  • 问题内容: 今天,我遇到了一个问题..我的程序制作了一个8x8的网格,并在单击时显示了坐标。 但是我拒绝使用,我需要去..但是我 没有工作,所以我不知道怎么可能解决自4小时以来我正在搜索的问题..... 问题答案: 没有功能。相反,您需要使用 看看如何编写鼠标侦听器以了解更多详细信息…

  • 问题内容: 我有以下代码: 据我了解,我创建了一个按钮,上面写着“清除”。然后,我必须将一个动作与此按钮关联(如果按下该按钮会发生什么),并由完成。这样对吗? 但是我不知道该在哪里指定动作。按下按钮应该清除文本区域,据我所知,应该在某处有代码清除文本区域。但是在给定的示例中, 。的参数中只有“ this” 。 程序如何知道按下按钮时应清除文本区域? 如果需要,请在此处给出完整的代码。 问题答案:

  • 连接的多个输入有一个为Yes则输出Yes。 用法 Your browser does not support the video tag. 案例:小闹钟 功能:逢15就猫叫 工作原理 当输入为“yes”时,“或”节点为“yes”。 例如:一种报警装置,当被暴露在光强下(光强大于30),或者被移动(陀螺仪被震动)时报警。 请注意上面的程序等于: 提示 事实上,你不需要经常使用“或”节点,因为“或”逻

  • 下面是代码的味道:https://scastie.scala-lang.org/bQMGrAKgRoOFaK1lwCy04g 我有两个JSON APIendpoint。首先是项目。cgi以以下格式返回项目对象列表 表示项目没有借款人。 其次,用户。cgi,返回查询参数id指定的用户 API可能不好,但我必须处理它。现在在Scala中,我想使用这个漂亮的数据模型 我还有以下用于执行HTTP请求的方法

  • AspectJ意味着它的另一个AOP实现不是基于spring的,如果我们想使用它,那么除了spring之外,我们还需要包括一些第三方JAR。 Spring AOP注释意味着Spring使用AspectJ注释来提供AOP特性。 这些假设公平吗?

  • 问题内容: 我目前正在使用“设置”结构使用Redis。 我想知道是否有可能自动清理空的“ set”吗? 否则找到一个cron /进程来定期清理空的“ set” 更新: 更笼统的问题是,“(nil)”和“(空列表或集合)”之间存在差异(内存使用情况) 例: 要么 问题答案: 这已经是自动的。如果集合为空,则将其从名称空间中删除。 您不必执行任何特定操作即可从此行为中受益。 要回答第二个问题,(nil