将空隙彼此放在一起时出错(&编译器无法编写代码)

用户名

所以我一直在尝试做一些简单的编码:用WASD键移动一个蓝色方块,

public static void main (String args[])
{
    new MoveWASD();
}

public MoveWASD() 
{
    super("Use-WASD-to-Move");
    setSize(800, 450);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);        
}

public void paint(Graphics g)
{
    g.setColor(Color.WHITE);
    g.fillRect(0, 0, 800, 450);

    g.setColor(Color.BLUE);
    g.fillRect(Location[0], Location[1], 20, 20);
    System.out.println("PRINTEDs");
}

public class MoveDetection extends Thread implements KeyListener
{




    @Override
    public void keyReleased(KeyEvent e) {
        // TODO Auto-generated method stub

    }


    @Override
    public void keyTyped(KeyEvent e) {
        // TODO Auto-generated method stub

    }



    public void keyPressed(KeyEvent arg0) 
    {


               public void run()
        {
            while(true)
            {
            try
            {


                if(event.getKeyChar() == 'w')
                {
                    Location[1] = Location[1] - 20;
                    Repeat = true;
                }
                else if(event.getKeyChar() == 'd')
                {
                    Location[0] = Location[0] + 20;
                }
                else if(event.getKeyChar() == 's')
                {
                    Location[1] = Location[1] + 20;
                }
                else if (event.getKeyChar() == 'a')
                {
                Location[0] = Location[0] - 20;
                }
                else
                {
                Location[0] = Location[0];
                }

                Thread.sleep(75);
            }
            catch(Exception e) 
            {
                break;
            }
            }

        }

    }


}

但是,在将一个静态空洞放入另一个空洞时出现错误,箭头(上方)指向我的两个错误:一个正在运行,该错误表示:令牌“ void”的语法错误,@预期,而在结束括号下的另一个在说语法错误的run(中,插入“ EnumBody”以完成BlockStatements另外,当我在movedetection类下的任何“ void”下放置“ System.out.write()”时,它不会显示,这可能意味着它不是没关系...当我刚刚开始编码时,我不知道这意味着什么,有什么帮助吗?

蜘蛛鲍里斯(Boris)

在Java中,您不能将方法嵌套在其他方法中,也许可以阅读this

您需要从其他方法调用该方法

public void run(KeyEvent event) {
    //do stuff
}
public void keyPressed(KeyEvent event)  {
    run(event);
}

也许更重要的是,您有一个while(true)事件处理程序。这将导致EDT被阻止,从而导致GUI冻结。

我看不到while循环的任何原因每次按键都会触发按键事件

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

缩小浏览器窗口时将 flexbox 放在一起

编写将两个不同类的变量放在一起的函数时遇到问题

将 div 放在一起

设备树编译器是否与内核版本绑定在一起?

当我处于特定宽度以下时,我的div会彼此叠放在一起

将数组连接在一起但彼此交叉

如何将两个代码/程序放在一起?

将 flutter 测试文件与源代码放在一起

是否可以将 node.js 和 python 代码放在一起?

为什么此C ++代码可以与某些编译器一起编译,而不与其他编译器一起编译?

如何在编译时将未知数量的迭代器压缩在一起?

将 div(通过 php 数据库获得)放在一起,当行满时放在一起

直接将Windows Installer MSI与包装器/ boostrapper放在一起的内容是什么?

无法将Enumerable.Count与List一起使用,编译器假定为List.Count

将矩形和角形带放在一起

如何将这些图像放在一起?

将Matplotlib和Sympy的图放在一起

将布局放在一起 - 问题

ContT Monad:将各个部分放在一起

将标签和组合框放在一起

将功能的间隔放在一起

将两个数组放在一起

如何将这些 Div 放在一起?

将函数指针和对象放在一起

我如何将JDK编译器与Dr Java一起使用,而不是Eclipse编译器?

使用 R 将多列收集在一起时出错

将2个mysql表放在一起一起显示结果

如何编写(测试)编译器/ JIT无法优化的代码?

ResponsiveVoice.js无法与Phonegap编译器一起正常工作