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);
}
}
}
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);
}
}
}
相关文章推荐
- Android studio 百度地图demo出现230错误,key校验失败
- Event 29 Kerberos-Key-Distribution-Center
- KeyListener的三个方法,而其参数KeyEvent却不同
- Android View框架总结(九)KeyEvent事件分发机制
- android6.0报错 :KeyEvent: ACTION_UP but key was not down.解决之旅
- input keyevent命令
- UMLOG: (ERROR) Umeng event's keys and values must be string ,key's max length 128 and value's max le
- Sciter TIScript KeyEvent
- java SWT:MouseEvent,KeyEvent中stateMask字段的用法
- Redis 事件通知(keyspace & keyevent notification)
- dispatchkeyevent的调用机制
- 使用dispatchKeyEvent onkeyevent return true没得按键音问题
- KeyEvent 键码值
- adb shell input keyevent code详解
- Android关于onCreateOptionsMenu(Menu menu)和onKeyDown(int keyCode, KeyEvent event)的问题
- 安卓键 adb shell input keyevent code
- Android提供的onKey(),OnKeyDown()和dispatchKeyEvent()方法之间的区别
- EventBus Demo
- adb key event
- 如何解决wxFrame的key event不好使的问题。