您的位置:首页 > 编程语言 > Java开发

KeyEventDemo

2014-05-14 23:54 399 查看
import javax.swing.*;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.event.*;

public class KeyEventDemo extends JFrame {

    private KeyboardPanel keyboardPanel = new KeyboardPanel();

    

    /** Intitialized UI */

    public KeyEventDemo() {

        // Add the keyboard panel to accept and display user input

        add(keyboardPanel);

        

        // Set focus

        keyboardPanel.setFocusable(true);

    }

    

    /** Main method */

    public static void main(String[] args) {

        KeyEventDemo frame = new KeyEventDemo();

        frame.setTitle("KeyEventDemo");

        frame.setSize(300, 300);

        frame.setLocationRelativeTo(null); // Center the frame

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setVisible(true);

    }

    

    // Inner class: KeyboardPanel for receiving key input

    static class KeyboardPanel extends JPanel {

        private int x = 100;

        private int y = 100;

        private char keyChar = 'A'; // Default key

        

        /*public KeyboardPanel() {

            addKeyListener(new KeyListener() {

                public void keyTyped(KeyEvent e) {

                    keyChar = e.getKeyChar();

                    repaint();

                }

                

                public void keyPressed(KeyEvent e) {

                    if(e.getKeyCode() == KeyEvent.VK_UP)

                        y--;

                    else if(e.getKeyCode() == KeyEvent.VK_DOWN)

                        y++;

                    else if(e.getKeyCode() == KeyEvent.VK_LEFT)

                        x--;

                    else if(e.getKeyCode() == KeyEvent.VK_RIGHT)

                        x++;

                    repaint();

                }

                

                public void keyReleased(KeyEvent e) {

                }

            }

                    );

        }*/

        

        

        public KeyboardPanel() {

            addKeyListener(new KeyAdapter() {

                public void keyPressed(KeyEvent e) {

                    switch(e.getKeyCode()) {

                    case KeyEvent.VK_DOWN: y++; break;

                    case KeyEvent.VK_UP: y--; break;

                    case KeyEvent.VK_LEFT: x--; break;

                    case KeyEvent.VK_RIGHT: x++; break;

                    default: keyChar = e.getKeyChar();

                    }

                    repaint();

                }

            }

                    );

        }

        

        /** Draw the character */

        protected void paintComponent(Graphics g) {

            super.paintComponent(g);

            

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

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

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java KeyEvent