keylistenerapplet.java

来自「java 中的键盘监听事件」· Java 代码 · 共 114 行

JAVA
114
字号
/*
 * KeyListenerApplet.java
 *
 * Created on 2007年5月4日, 上午9:12
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package testApplet;

import java.applet.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
/**
 *
 * @author INST
 */
public class KeyListenerApplet extends Applet implements KeyListener{
    
    /** Initialization method that will be called after the applet is loaded
     *  into the browser.
     */
    private Rectangle r;
    private Color backColor;
    public void init() {
        // TODO start asynchronous download of heavy resources
        r=new Rectangle(0,0,40,40);
        backColor=Color.WHITE;
        addKeyListener(this);
    }
    
    // TODO overwrite start(), stop() and destroy() methods
    public void paint(Graphics g)
    {
        setBackground(backColor);
        g.fillRect(r.x,r.y,r.width,r.height);
    }
    public void keyTyped(KeyEvent e) {
        char keyChar=e.getKeyChar();
        switch(keyChar)
        {
            case'r':
            {
                backColor=Color.RED;
                repaint();
                break;
            }
            case'g':
            {
                backColor=Color.GREEN;
                repaint();
                break;
            }
            case'b':
            {
                backColor=Color.BLUE;
                repaint();
                break;
            }
            case'w':
            {
                backColor=Color.WHITE;
                repaint();
                break;
            }
        }
    }

    public void keyPressed(KeyEvent e) {
        int keyCode=e.getKeyCode();
        if(keyCode==KeyEvent.VK_LEFT)
        {
            r.x-=5;
            if(r.x<0)
                r.x=0;
            repaint();
        }
        else if(keyCode==KeyEvent.VK_RIGHT)
        {
            r.x+=5;
            if(r.x>getSize().width-r.width)
                r.x=getSize().width-r.width;
            repaint();
        }
        else if(keyCode==KeyEvent.VK_UP)
        {
            r.y-=5;
            if(r.y<0)
                r.y=0;
            repaint();
        }
        else if(keyCode==KeyEvent.VK_DOWN)
        {
            r.y+=5;
            if(r.y>getSize().height-r.height)
                r.y=getSize().height-r.height;
            repaint();
        }
    }

    public void keyReleased(KeyEvent e) {
        char keyChar=e.getKeyChar();
        if(keyChar=='e'||keyChar=='q')
            System.exit(0);
    }
//    public static void main(String[] args)
//     {
//         KeyListenerApplet guiMemo=new KeyListenerApplet();
//         guiMemo.setVisible(true);
//     }       
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?