📄 keytest.java
字号:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
//这个applet让用户使用箭头键来移动一个黑色的矩形
//用户还可以用'R', 'G', 'B'和'W'键来改变applet的背景色
//它还允许用不同的方式来终止KeyEvent
public class KeyTest extends Applet implements KeyListener
{
// 可以移动的黑色矩形
private Rectangle r;
// applet的当前背景色
private Color backColor;
// 覆盖 Applet 类的init方法
public void init()
{
r = new Rectangle(0, 0, 20, 10);
backColor = Color.WHITE;
addKeyListener(this);
}
// 在更新后的位置绘制矩形
public void paint(Graphics g)
{
setBackground(backColor);
g.fillRect(r.x, r.y, r.width, r.height);
}
/** 实现 KeyListener 接口中的方法 */
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)
{
// 什么也不做...
}
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;
}
}
}
} // KeyTest
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -