【 java版坦克大戰--事件處理】 鍵盤控制小球上下左右移動


上一節已經學習了事件處理,這一節需要完成通過鍵盤的上下左右鍵控制小球移動。

然后再通過應用到我們繪制的坦克上。

 1 /**
 2  * 加深對事件處理機制的理解
 3  * 通過光標的上下左右鍵,控制小球的左右上下移動.
 4  */
 5 package com.test4;
 6 import java.awt.*;
 7 import java.awt.event.*;
 8 
 9 import javax.swing.*;
10 public class Demo9_4 extends JFrame {
11     
12     MyPanel mp = null;
13     
14     public static void main(String[] args) {
15             Demo9_4 demo9_4 = new Demo9_4();
16     }
17     public Demo9_4(){
18         mp = new MyPanel();
19         this.add(mp);
20         
21         this.addKeyListener(mp);
22         
23         this.setSize(400,300);
24         this.setVisible(true);
25     }
26 
27 }
28 //事件源JFrame->Demo9_4,MyPanel監聽者,需要畫小球
29 //定義自己的面板
30 class MyPanel extends JPanel implements KeyListener{
31     int x=10;
32     int y=10;
33     public void paint(Graphics g){
34         super.paint(g);
35         g.fillOval(x, y, 10, 10);
36     }
37 
38     @Override
39     public void keyTyped(KeyEvent e) {//輸入可以以顯示的
40         
41     }
42 
43     @Override
44     public void keyPressed(KeyEvent e) {//按下去.
45 //        System.out.println(e.getKeyCode()==37);
46         if(e.getKeyCode()==KeyEvent.VK_DOWN){
47             y+=10;
48         }else if(e.getKeyCode()==KeyEvent.VK_UP){
49             y--;
50         }else if(e.getKeyCode()==KeyEvent.VK_LEFT){
51             x--;
52         }else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
53             x++;
54         }
55         this.repaint();
56     }
57     @Override
58     public void keyReleased(KeyEvent e) {//松開
59         
60     }
61 }

 

可以通過鍵盤的上下左右鍵控制小球運動。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM