用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

按键监听--不冲突

2015-12-19 作者: 永夜极光举报

[java]代码库

package s1214键盘监听事件移动方块;
//w,a,s,d控制移动
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import 工具类.ThreadSleep;
 
public class Main1214 extends JFrame
{
  static int x=50;
  static int y=50;
  static int speed=10;
  static boolean upFlag=false;
  static boolean downFlag=false;
  static boolean leftFlag=false;
  static boolean rightFlag=false;
 
    public static void  main(String[] args)
    
         
        Main1214 a= new Main1214();
 
        while(true)
        {
         ThreadSleep.threadSleep(30);             
          if(upFlag)    {y-=speed;}//向上移动
          if(downFlag)  {y+=speed;}//向下移动
          if(leftFlag)  {x-=speed;}//向左移动      
          if(rightFlag) {x+=speed;}//向右移动
          a.repaint();//重绘
        }      
    }
         
    Main1214()
    
       this.setTitle("移动滑块");        //设置窗体标题
       this.setDefaultCloseOperation(3);//设置窗体关闭方式
       this.setSize(700,700);           //设置窗体大小
       this.setResizable(true);         //设置窗体大笑可变
       this.setLocationRelativeTo(null);//设置窗体居中             
       JPanel drawPanel=new JPanel()    //创建画板对象,用来画图   
          {          
             public void paint(Graphics g)               
            {
             super.paint(g);
             g.fillRect(x,y,30,30);      //画出方块
            }
          };      
           
       this.addKeyListener(new KeyAdapter()     //匿名对象和匿名内部类的使用
        {
                   
//关键代码**************************************************************************
                  public void keyPressed(KeyEvent e) //按下按键
                  {
                    if(e.getKeyCode()==KeyEvent.VK_W){upFlag=true;}        
                    if(e.getKeyCode()==KeyEvent.VK_S){downFlag=true;}
                    if(e.getKeyCode()==KeyEvent.VK_A){leftFlag=true;}
                    if(e.getKeyCode()==KeyEvent.VK_D){rightFlag=true;}  
                  }        
                   
                  public void keyReleased(KeyEvent e)//松开按键
                  {
                    if(e.getKeyCode()==KeyEvent.VK_W){upFlag=false;}           
                    if(e.getKeyCode()==KeyEvent.VK_S){downFlag=false;}
                    if(e.getKeyCode()==KeyEvent.VK_A){leftFlag=false;}
                    if(e.getKeyCode()==KeyEvent.VK_D){rightFlag=false;}                  
                  }
//关键代码**************************************************************************                 
           
              });
 
              this.add(drawPanel);   //将画板添加到窗体
              this.setVisible(true); //设置窗体可见
        }
    }


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...