首页 > 编程语言 >跟着王洋老师学编程 - 1.7 键盘控制小球

跟着王洋老师学编程 - 1.7 键盘控制小球

时间:2023-12-28 17:35:14浏览次数:19  
标签:1.7 ke 王洋 void 小球 键盘 println kbp public

一 、 抽象方法/类 和 接口的定义

  • 抽象方法 - 无法清晰描述的方法,比如动物类的吃方法;
  • 抽象类 - 如果一个类中含有抽象方法,那这个类也必须要定义成抽象类;
  • 接口 - 如果一个类中只有抽象方法,没有属性,这就是一个纯抽象类,即接口。
1 abstract class Animal{  // 抽象类
2   public abstract void eat();  // 抽象方法        
3 }
1 interface Animal{  // 接口
2   public void eat();  // 不再需要写abstract 标识
3 }

 

二、键盘控制小球的实现

根据老师的讲解,开发思路如下:

  - 实例化一个窗体

  - 定义画布类——继承画布类、实现键盘监听接口,重写键盘监听接口的三个抽象方法

  - 实例化一个画布,将画布添加到窗体,并注册监听键盘事件

 代码一

【运行结果】编译失败

【原因分析】错误提示已经很明确,keyCode属性不能直接通过对象访问,很可能是个私有属性,查API文档,得知获取keyCode的方法

代码二

 1 import java.awt.*;
 2 import java.awt.event.*;
 3 
 4 public class KeyBall{
 5     public static void main(String args[]){
 6         Frame w = new Frame();
 7         w.setSize(400,300);
 8 
 9         KeyBallPanel kbp = new KeyBallPanel();
10         w.add(kbp);
11 
12         // 注册事件,double confirm
13         //w.addKeyListener(kbp);
14         kbp.addKeyListener(kbp);
15 
16         w.setVisible(true);
17     }
18 }
19 
20 class KeyBallPanel extends Panel implements KeyListener{
21     int x = (int)(Math.random()*400);
22     int y = (int)(Math.random()*300);
23     public void paint(Graphics g){
24         g.setColor(Color.red);
25         //System.out.println(x+" "+y);
26         g.fillOval(x,y,10,10);
27     }
28     @Override
29     public void keyPressed(KeyEvent ke){
30         //System.out.println(ke);
31         int kc = ke.getKeyCode();
32         System.out.println(kc);
33         switch(kc){
34             case 38:y--;break;
35             case 40:y++;break;
36             case 37:x--;break;
37             case 39:x++;
38         }
39         repaint();
40     }
41     @Override
42     public void keyReleased(KeyEvent ke){
43         //System.out.println(ke);
44 
45     }
46     @Override
47     public void keyTyped(KeyEvent ke){
48         //System.out.println(ke);
49     }
50 }

【运行结果】完美实现键盘控制小球~~~^_^

 

标签:1.7,ke,王洋,void,小球,键盘,println,kbp,public
From: https://www.cnblogs.com/shannonredeemed/p/17930281.html

相关文章

  • 跟着王洋老师学编程 - 1.6 下大雪
    一、我的思路-在屏幕上画100~200个雪花,并记录每个雪花的位置-应用线程的run方法,增加每个雪花的Y轴坐标,然后重绘画布 1importjava.awt.*;2publicclassSnow{3publicstaticvoidmain(Stringargs[]){4Framew=newFrame();5......
  • Typora1.7.6永久激活工具下载
    Typora下载安装前往官网下载typora的1.7.6版本选择为所有用户下载选择安装路径创建桌面快捷方式开始下载下载完成后启动在typora启动页选择以后再说,有的第一次下载可能会显示试用,直接点击试用就行然后手动将typora关闭激活工具下载Typora1.7.6永久激活工具下载Typora激活激活工具下......
  • 跟着王洋老师学编程 - 1.6 下大雪
    一、我的思路-在屏幕上画100~200个雪花,并记录每个雪花的位置-应用线程的run方法,增加每个雪花的Y轴坐标,然后重绘画布 1importjava.awt.*;2publicclassSnow{3publicstaticvoidmain(Stringargs[]){4Framew=newFrame();5......
  • 跟着王洋老师学编程 - 1.5 小球撞墙(switch逻辑,问题是:小球会出现消失的状态。。)
    一、我的思路-创建窗体、设定窗体大小-在窗体中添加画布,并将画布添加至线程-线程run()方法持续执行,坐标不断变化,画布随之重绘,形成小球下落的效果,并随时判断小球X轴、Y轴坐标,触底后,通过flag值调整坐标加减方向代码一1importjava.awt.*;2publicclassBallHitWall{......
  • 制作一个跳跃的小球游戏
    #-*-coding:utf-8-*-"""CreatedonWedDec1310:48:222023@author:86135"""importsysimportpygamepygame.init()size=width,height=640,480screen=pygame.display.set_mode(size)color=(0,......
  • 做一个小游戏,跳跃的小球
    以下为代码:#-*-coding:utf-8-*-importsys#导入sys模块importpygame#导入pygame模块pygame.init()#初始化pygamesize=width,height=800,700#设置窗口screen=pygame.display.set_mode(size)#显示窗口color=(0,0,0)#设置颜......
  • 11.7
    今天我们来实现管理员登陆与学生登录及功能等的前后端代码首先是我的配置图1、管理员①后端UserControllerpackagecom.example.controller;importcom.example.pojo.Result;importcom.example.pojo.User;importcom.example.pojo.student;importcom.example.ser......
  • 跳跃小球游戏
    importsys#导入sys模块importpygame#导入pygame模块pygame.init()#初始化pygamesize=width,height=640,480#设置窗口screen=pygame.display.set_mode(size)#显示窗口color=(0,0,0)#设置颜色ball=pygame.image.load(r"C:\Users\xxxtentacion\Des......
  • 11.7随笔
    执行没有WHERE子句的UPDATE要慎重,再慎重。在MySQL中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,必须在update语句后携带where条件,否则就会报错。setsql_safe_updates=1; 表示开启该参数SQL DELETE 语句DELETE语句用于删除表中......
  • 11.7
    4、编写将n个数从小到大排序的函数,要求该函数返回排序过程中交换的次数,并设计main函数,验证算法正确与否。      intsort(intarr[],intn){……….}程序代码:  程序代码:#include<stdio.h> intsort(intarray[],intn){   inti,j,temp,count=0;......