我正在尝试写一个小程序,在其中画一个圆圈。按L会增加圆的大小,按S会减小圆的大小。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class oval extends Applet implements KeyListener{
private int d=10;
@Override
public void init() {
setSize(500,500);
addKeyListener(this);
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawOval(100, 100, d, d);
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyChar()=='L')
d=d+5;
else if(e.getKeyChar()=='S')
d=d-5;
repaint();
}
@Override
public void keyReleased(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}发布于 2014-10-22 16:41:22
编辑:对不起,我没有完全读到你的代码.实际上,您正确地使用了KeyEvent,但是当您比较图表时,您需要做小写,而不是大写:
if(e.getKeyChar() == 'l')
not
if(e.getKeyChar() == 'L') //this will work if the user presses Shift+l我刚刚向你们展示了另一种方法,我让它设置的方式将对小写l和大写l都有效,所以它不区分大小写。
您没有正确地使用KeyEvent触发特定的密钥。下面是经过测试和工作的代码:
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class oval extends Applet implements KeyListener
{
private int d=10;
@Override
public void init()
{
setSize(500,500);
addKeyListener(this);
}
@Override
public void paint(Graphics g)
{
super.paint(g);
g.drawOval(100, 100, d, d);
}
@Override
public void keyTyped(KeyEvent e)
{
}
@Override
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_L)
d=d+5;
else if(e.getKeyCode()==KeyEvent.VK_S)
d=d-5;
repaint();
}
@Override
public void keyReleased(KeyEvent e)
{
}
}我删除了你在keyReleased事件中抛出的错误,因为我不知道那是为什么.
https://stackoverflow.com/questions/26512430
复制相似问题