A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 颜仔 中级黑马   /  2014-11-13 15:47  /  1451 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1.                 but.addActionListener(new ActionListener()
  2.                 {
  3.                         public void actionPerformed(ActionEvent e)
  4.                         {
  5.                                 System.out.println("action ok");
  6.                                 //System.exit(0);
  7.                         }
  8.                 });
  9.                 but.addMouseListener(new MouseAdapter()
  10.                 {
  11.                         private int count=1;
  12.                         private int clickCount=1;
  13.                         public void mouseEntered(MouseEvent e)
  14.                         {
  15.                                 System.out.println("鼠标进入到该组件"+count++);
  16.                         }
  17.                         public void mouseClicked(MouseEvent e)
  18.                         {
  19.                                 System.out.println("点击动作"+clickCount++);
  20.                         }
  21.                 });
复制代码

请问 我用鼠标监听和活动监听都监听了按钮后,为什么按键盘的时候,活动监听不执行,看毕老师视频不是按住键盘的时候会执行吗?按钮不是键盘和鼠标都可以控制吗?

9 个回复

倒序浏览
键盘的话是按键事件问题:可以通过KeyListener接口来处理按键事件。
回复 使用道具 举报
15621506590 发表于 2014-11-16 19:14
键盘的话是按键事件问题:可以通过KeyListener接口来处理按键事件。

我知道啊  但是按钮监听了活动监听后不是键盘也可以操作吗?为什么我的没有反应呢?
回复 使用道具 举报
  public void mouseEntered(MouseEvent e),是你的鼠标在按钮上划来划去,当你的鼠标划进或划出按钮的时候, 这句话执行了。
public void mouseClicked(MouseEvent e)是当你的鼠标左键在按钮上点击时,这句话会执行
but.addActionListener(new ActionListener(),当你按键盘上的键时,会执行
特别注意:你看看你的frame用的什么布局,如果是默认的话,but会占满整个frame,划进的意思是这个按钮的边界,而不是你给button你的那个名字而已

回复 使用道具 举报
wangshuying 发表于 2014-11-17 08:51
public void mouseEntered(MouseEvent e),是你的鼠标在按钮上划来划去,当你的鼠标划进或划出按钮的时候 ...

我是new出来的流式布局。but.addActionListener(new ActionListener(),当你按键盘上的键时,会执行,你的这句话就是当按钮为当前事件源的时候 键盘进行操作没有任何反应。
回复 使用道具 举报
你查查keyListener的API
回复 使用道具 举报
chensc 金牌黑马 2014-11-17 19:44:38
7#
学习学习!
回复 使用道具 举报
public class GUIDemo {
        public static void main(String[] args){
                Frame f=new Frame("my.awt");               
                f.setBounds(200,200, 400, 300);
                f.setLayout(new FlowLayout());
            Button but=new Button("my button");
            f.add(but);
            but.addActionListener(new ActionListener()
        {
                public void actionPerformed(ActionEvent e)
                {
                        System.out.println("action ok");
                        //System.exit(0);
                }
        });
        but.addMouseListener(new MouseAdapter()
        {
                private int count=1;
                private int clickCount=1;
                public void mouseEntered(MouseEvent e)
                {   
                        System.out.println("鼠标进入到该组件"+count++);
                }
                public void mouseClicked(MouseEvent e)
                {
                        System.out.println("点击动作"+clickCount++);
                }
        });
            
            f.setVisible(true);
        }
}
我把你的代码复制了一遍,你看看一样吗,  当执行but.addActionListener(new ActionListener()时,你点击鼠标左键或者按键盘上的键时都会输出action ok
回复 使用道具 举报
颜仔 中级黑马 2014-11-19 17:38:55
9#
wangshuying 发表于 2014-11-18 07:48
public class GUIDemo {
        public static void main(String[] args){
                Frame f=new Frame("my.awt");               

正确者  我查了文档了  好像要按空格键才会触发活动监听来显示。
回复 使用道具 举报
颜仔 中级黑马 2014-11-19 17:41:26
10#
qq8921310 发表于 2014-11-17 16:49
你查查keyListener的API

解决了。查的文档 操作空格

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马