今天写的游戏。主要听众,但它并不总是加入了育雏,

我实现了接口,但不听

后来,我发现只是没想到服用口服细致怎么称呼控制panel上面增加了一个addKeyListener(this);

基础不坚固。马虎

其次我有在其它的程序里測试发现方法都写了也不行:后来比較了一下少了个

this.setFocusable(true);

网上一查才知道还须要获取焦点。伙伴们你们知道了么?

将控件设置成可获取焦点状态。默认是无法获取焦点的,仅仅有设置成true,才干获取控件的点击事件

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;





import javax.swing.JFrame;

import javax.swing.JPanel;









public class mainFrame extends JFrame {

private KeyboardPanel keyboardPanel =new KeyboardPanel();

public mainFrame(){

add(keyboardPanel);

keyboardPanel.setFocusable(true);



}

public static void main(String [] args){

mainFrame frame = new mainFrame();

frame.setTitle("mainFrame");

frame.setSize(300,300);

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

static class KeyboardPanel extends JPanel implements KeyListener{

private int x=100;

private int y=100;

private char keyChar = 'A';

public KeyboardPanel(){

setBackground(Color.cyan);

addKeyListener(this);

/*addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e){

switch (e.getKeyCode()){

case KeyEvent.VK_DOWN: 



y+=10;

break;

case KeyEvent.VK_UP:

y-=10;

break;

case KeyEvent.VK_LEFT:

x-=10;

break;

case KeyEvent.VK_RIGHT:

x+=10;

break;

default:

keyChar=e.getKeyChar();

}

//repaint();

}





});*/

}



   protected void paintComponent(Graphics g){

  super.paintComponent(g);

  g.setFont(new Font("TimesRoman",Font.PLAIN,40));

  g.drawString(String.valueOf(keyChar), x, y);

   }





@Override

public void keyPressed(KeyEvent e) {

// TODO Auto-generated method stub

switch (e.getKeyCode()){

case KeyEvent.VK_DOWN: 





y+=10;

break;

case KeyEvent.VK_UP:

y-=10;

break;

case KeyEvent.VK_LEFT:

x-=10;

break;

case KeyEvent.VK_RIGHT:

x+=10;

break;

default:

keyChar=e.getKeyChar();

}

repaint();

}





@Override

public void keyReleased(KeyEvent e) {

// TODO Auto-generated method stub



}





@Override

public void keyTyped(KeyEvent e) {

// TODO Auto-generated method stub



}

}

}

版权声明:本文博主原创文章。博客,未经同意不得转载。

implements KeyListener但关键监听器监听少的更多相关文章

  1. 【转】Android开发20——单个监听器监听多个按钮点击事件

    原文网址:http://woshixy.blog.51cto.com/5637578/1093936 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律 ...

  2. 同一台机器oralce11g和12c公用一个监听器监听多个端口

    启动数据库服务 (这里还没有启动监听器) 如上图OracleServiceORCL为11g的服务,服务名为orcl,OracleServiceWX为12c的服务名,服务名为wx,两个服务均已正常启动, ...

  3. java的任务监听器监听任务

    Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务. 使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行.一般用的较少 监听 ...

  4. Java_监听器监听文件夹变动

    package demo4; import java.io.IOException;import java.nio.file.FileSystems;import java.nio.file.Path ...

  5. Flex学习笔记-使用MXML和一个AS事件监听器监听事件

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  6. 深入理解Spring的容器内事件发布监听机制

    目录 1. 什么是事件监听机制 2. JDK中对事件监听机制的支持 2.1 基于JDK实现对任务执行结果的监听 3.Spring容器对事件监听机制的支持 3.1 基于Spring实现对任务执行结果的监 ...

  7. 涂抹Oracle笔记1-创建数据库及配置监听程序

    一.安装ORACLE数据库软件及创建实例OLTP:online transaction processing 指那些短事务,高并发,读写频繁的数据库系统.--DB_BLOCK_SIZE通常设置较小.O ...

  8. Liferay7 BPM门户开发之4: Activiti事件处理和监听Event handlers

    事件机制从Activiti 5.15开始引入,这非常棒,他可以让你实现委托. 可以通过配置添加事件监听器,也可以通过Runtime API加入注册事件. 所有的事件参数子类型都来自org.activi ...

  9. Laravel 事件系统用法总结(监听事件,观察者模式)

    看这篇文章先复习一下设计模式 : https://www.cnblogs.com/fps2tao/p/9640338.html 在理解了观察者模式后,我们开始正文 Laravel 的事件提供了一个简单 ...

随机推荐

  1. Java 小样例:图书馆课程设计(Java 8 版)

    用 Java 模拟一个图书馆.包含创建图书.创建读者.借书.还书.列出全部图书.列出全部读者.列出已借出的图书.列出过期未还的图书等功能. 每一个读者最多仅仅能借 3 本书,每一个书最多仅仅能借 3 ...

  2. C#之任务,线程和同步

    1 概述 对于所有需要等待 的操作,例 如 ,因 为文件 . 数据库或网络访 问都需要一定 的时间,此 时就可以启 动一个新线程,同时完成其他任务,即使是处理密集型的任务,线程也是有帮助的. 2 Pa ...

  3. JAVA 计算地球上任意两点(经纬度)距离

    /** * 计算地球上任意两点(经纬度)距离 * * @param long1 * 第一点经度 * @param lat1 * 第一点纬度 * @param long2 * 第二点经度 * @para ...

  4. 伪教练技术培训之殇-2013年9月江西IDC拓行榜与综述

    纠集几个人,然后培训所谓的教练技术培训. 培训的人一期又一期的参与,国学.佛学.超能量,无所不用其极,然后就是疯狂的拿人头,邀请朋友加盟. 有甚者还披上“科技”的外衣,用“水知道答案”这种早被公知指出 ...

  5. H264 编解码框架简单介绍

    阅读完H264/AVC 编解码器的介绍,脑海中仅仅是留下下面三条: 1.H264并没有明白规定一个编解码器怎样实现,仅仅是规定了一个编码后的视频比特流的句法,和该比特流的解码方法,这个与MPEG 类似 ...

  6. Java Executor 框架

    Java Executor 框架 Executor框架是指java5中引入的一系列并发库中与executor相关的功能类,包括Executor.Executors. ExecutorService.C ...

  7. 关于Relay Log无法自己主动删除的问题(Neither --relay-log nor --relay-log-index were used)

    今天查看mysql err日志.发现mysql重新启动时总会有例如以下日志出现: [Warning] Neither --relay-log nor --relay-log-index were us ...

  8. HibernateReview Day1 - Introduction

    Hibernate已经学过去大概有半个月了,然后默默的忘掉了……所谓Practice makes perfect. 我尽力重新拾起来. 1.什么是ORM 在介绍Hibernate之前,我们先学习下OR ...

  9. mysql安装注意

    mysql安装教程,网上到处都有,我这里就不细说了. 但是有一点要注意,安装完之后,点击MySql 5.5 Command Line Client时,有可能出现一闪而过,打不开mysql的情况: 首先 ...

  10. 从字节码层面看“HelloWorld” (转)

    一.HelloWorld 字节码生成 众所周知,Java 程序是在 JVM 上运行的,不过 JVM 运行的其实不是 Java 语言本身,而是 Java 程序编译成的字节码文件.可能一开始 JVM 是为 ...