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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 sd110572 于 2013-12-19 18:13 编辑
  1. package demo;

  2. import java.awt.Button;
  3. import java.awt.EventQueue;
  4. import java.awt.FlowLayout;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.awt.event.KeyAdapter;
  8. import java.awt.event.KeyEvent;

  9. import javax.swing.JFrame;


  10. public class abc {

  11.         private JFrame frame;

  12.         /**
  13.          * Launch the application.
  14.          */
  15.         public static void main(String[] args) {
  16.                 EventQueue.invokeLater(new Runnable() {
  17.                         public void run() {
  18.                                 try {
  19.                                         abc window = new abc();
  20.                                         window.frame.setVisible(true);
  21.                                 } catch (Exception e) {
  22.                                         e.printStackTrace();
  23.                                 }
  24.                         }
  25.                 });
  26.         }

  27.         /**
  28.          * Create the application.
  29.          */
  30.         public abc() {
  31.                 initialize();
  32.         }

  33.         /**
  34.          * Initialize the contents of the frame.
  35.          */
  36.         private void initialize() {
  37.                 frame = new JFrame();
  38.                 frame.setBounds(100, 100, 450, 300);
  39.                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  40.                 frame.setLayout(new FlowLayout());
  41.                 Button b = new Button("我是按钮");
  42.                 frame.add(b);
  43.                 b.addKeyListener(new KeyAdapter() {
  44.                         //按下键盘
  45.                         public void keyPressed(KeyEvent e) {
  46.                                 System.out.println("按下键盘");
  47.                         }
  48.                 });
  49.                 b.addActionListener(new ActionListener() {
  50.                         //按钮被触发
  51.                         public void actionPerformed(ActionEvent arg0) {
  52.                                 System.out.println("触发按钮");
  53.                         }
  54.                 });
  55.         }   
  56. }
复制代码


我按下空格,按钮就会触发。可是我不想让空格操作这个按钮。
我想设置字母W键来触发, 用过JButton来设置了,可是空格照样能触发这个按钮。
2个问题,怎么让某个键触发这个Button,怎么取消空格触发Button

评分

参与人数 2技术分 +1 黑马币 +20 收起 理由
七度 + 20 淡定
乔兵 + 1

查看全部评分

2 个回复

正序浏览

GUI Button 问题【为何没人,我感觉很尴尬啊】

小骗子 发表于 2013-12-19 18:48
用KeyCode控制就行了;
JButton button=new JButton("按纽");
button.addKeyListener(new KeyAdapter()

不行啊,这样只能打印addKeyListener的触发,
我是要按钮addActionListener里面的触发,就是说要2句话都打印。
而且空格还是能用啊,按下空格这2句都出来了。
怎么取消空格触发addActionListener?
回复 使用道具 举报
本帖最后由 小骗子 于 2013-12-19 18:49 编辑

用KeyCode控制就行了;
JButton button=new JButton("按纽");
button.addKeyListener(new KeyAdapter()
    {
     public void keyPressed(KeyEvent e)
     {
      if(e.getKeyCode()==87)
      {
       System.out.println("键盘被触发了");
      }
     }
     
     
    });

87就是W所对应的KeyCode

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

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