小编lvl*_*lvl的帖子

使图形在关键事件上移动

当按下"i,j,k,l"键(如箭头键)时,我试图制作一个能够移动的圆,并在释放时停止.尝试创建一个Timer,以便在再次移动之前等待一秒,这样动画就可以了,但是因为我创建了'while(!quit)'循环,所以没有图形移动或显示.你能指出我的错误吗?

码:

import java.awt.*;
import java.awt.Color.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Timer;
import java.util.TimerTask;


public class Event_test{
    public static void main(String args[])
    {
        boolean quit = false;

        JFrame Window = new JFrame("Event_test");
        MyCanvas WCanvas = new MyCanvas();
        KeyCatcher k = new KeyCatcher();

        WCanvas.addKeyListener(k);


        Window.getContentPane().add(WCanvas);
        Window.setSize(640, 360);
        Window.setVisible(true);
        Window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        new Notification(1);

        while(!quit)
        {
            WCanvas.update(WCanvas.getGraphics());

            if(!Notification.flag)
            {
                continue;
            }
            else
            {
                Notification.flag = false;
                System.out.println("tic");
                /*
                CONTROLS:
                */

                if(KeyCatcher.KEYS[0])
                {
                    MyCanvas.x--;
                }
                if(KeyCatcher.KEYS[1])
                {
                    MyCanvas.y++;
                }
                if(KeyCatcher.KEYS[2])
                {
                    MyCanvas.x++;
                }
                if(KeyCatcher.KEYS[3])
                { …
Run Code Online (Sandbox Code Playgroud)

java graphics swing timer keylistener

0
推荐指数
1
解决办法
39
查看次数

标签 统计

graphics ×1

java ×1

keylistener ×1

swing ×1

timer ×1