在JAVA中如何判断按下两个键

本文介绍了一个简单的Java Swing应用,该应用通过键盘事件监听器实时显示用户按下的是哪个方向键(上、下、左、右)。文章提供的代码示例展示了如何在Swing中设置窗口、文本框,并实现键盘事件的监听和响应。

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;


import javax.swing.JFrame;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
 *
 * @author 李效伦 */
public class HOHO extends JFrame implements KeyListener{
   
    private JTextField t;
    private boolean left = false;
    private boolean right = false;
    private boolean up = false;
    private boolean down = false;
     public HOHO() {
       JPanel p = new JPanel();
       this.add(p);
       p.setLayout(null);
       t = new JTextField();
       t.setEditable(false);
       p.add(t);
       t.setSize(100,30);
       t.setLocation(200,200);
       this.setFocusable(true);
       this.addKeyListener(this);
       this.setSize(480,480);
       this.setVisible(true);
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
     }
    public void keyTyped(KeyEvent e) {
       
    }
    public void keyPressed(KeyEvent e) {
      
       int i = e.getKeyCode();
       switch(i) {
           case  KeyEvent.VK_LEFT :  left=true;  break;
           case  KeyEvent.VK_UP :   up= true;break;
           case  KeyEvent.VK_DOWN :down = true; break;
           case  KeyEvent.VK_RIGHT : right = true;break;
       }
      
       if(up==false&&down==false&&left==false&&right==false) {
         t.setText("什么也没按");
       }
       else if(up==true&&down==false&&left==false&&right==false) {
         t.setText("上");
       }
       else if(up==false&&down==true&left==false&&right==false) {
            t.setText("下");
       }
       else if(up==false&&down==true&left==true&&right==false) {
         t.setText("左下");
       }
       else if(up==true&&down==false&left==false&&right==true) {
         t.setText("右上");
       }
       else if(up==true&&down==false&left==true&&right==false) {
         t.setText("左上");
       }
        else if(up==false&&down==true&left==false&&right==true) {
         t.setText("右下");
       }
       else if(up==false&&down==false&left==true&&right==false) {
            t.setText("左");
       }
       else if(up==false&&down==false&left==false&&right==true) {
            t.setText("右");
       }
      
    }
    public void keyReleased(KeyEvent e) {
      int i = e.getKeyCode();
       switch(i) {
           case  KeyEvent.VK_LEFT :  left=false;  break;
           case  KeyEvent.VK_UP :   up= false;break;
           case  KeyEvent.VK_DOWN :down = false; break;
           case  KeyEvent.VK_RIGHT : right = false;break;
       }
    }
   
    public static void main(String[] args){
     new HOHO();
    }
    
}

转载于:https://www.cnblogs.com/lixiaolun/archive/2012/12/13/2816094.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值