首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GUI中的可调圆

GUI中的可调圆
EN

Stack Overflow用户
提问于 2014-10-22 16:30:56
回答 1查看 299关注 0票数 0

我正在尝试写一个小程序,在其中画一个圆圈。按L会增加圆的大小,按S会减小圆的大小。

代码语言:javascript
复制
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.");
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-22 16:41:22

编辑:对不起,我没有完全读到你的代码.实际上,您正确地使用了KeyEvent,但是当您比较图表时,您需要做小写,而不是大写:

代码语言:javascript
复制
if(e.getKeyChar() == 'l')

not

if(e.getKeyChar() == 'L')  //this will work if the user presses Shift+l

我刚刚向你们展示了另一种方法,我让它设置的方式将对小写l和大写l都有效,所以它不区分大小写。

您没有正确地使用KeyEvent触发特定的密钥。下面是经过测试和工作的代码:

代码语言:javascript
复制
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事件中抛出的错误,因为我不知道那是为什么.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26512430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档