JAVA实现一个圆形的移动,画出来的圆形移动,我的圆它不动呀 100

packagekeylistenermove;importjava.awt.*;importjava.awt.Event.*;importjava.awt.event.K... package keylistenermove;
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;
public class joinDemo1 extends JFrame
{
//继承
private int x=100, y=100, r=100;

//初始值
public joinDemo1()
{
super("小图形");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setSize(800, 600);
this.setVisible(true);
Thread thread=new Thread(new Graphicss());
thread.start();

}
public void paint(Graphics g)
{
super.paint(g);
g.fillOval(x, y, r, r);
}
public static void main(String[] args)
{
new joinDemo1();
}

class Graphicss extends JFrame implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
for (int j = 0; j <= 240; j++) {
try {
Thread.sleep(10);// 当前线程休眠0.01秒

} catch (InterruptedException e) {
e.printStackTrace();
}

y=y+j;
super.repaint();

}

}
}

}
展开
 我来答
fuhaiwei
推荐于2018-04-04 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1386万
展开全部
import java.awt.Graphics;
import java.awt.Image;

import javax.swing.JFrame;

public class JoinDemo extends JFrame {
    public static void main(String[] args) {
        new JoinDemo();
    }

    private int x = 100, y = 100, r = 100;

    public JoinDemo() {
        this.setTitle("小图形");
        this.setSize(800, 600);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setVisible(true);
        new UpdateThread().start();
    }

    public void paint(Graphics g) {
        Image image = createImage(getWidth(), getHeight());
        Graphics gg = image.getGraphics();
        bufferedPaint(gg);
        gg.dispose();
        g.drawImage(image, 0, 0, null);
    }

    private void bufferedPaint(Graphics gg) {
        gg.fillOval(x, y, r, r);
    }

    class UpdateThread extends Thread {
        public void run() {
            for (int j = 0; j <= 240; j++) {
                y++;
                repaint();
                sleep(10);
            }
        }

        private void sleep(int millis) {
            try {
                Thread.sleep(millis);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

}

说明:

第一:存为JoinDemo.java

第二:加入了一个缓冲,以免画面闪烁。

飞丝小新
2013-05-25 · TA获得超过289个赞
知道小有建树答主
回答量:393
采纳率:0%
帮助的人:296万
展开全部
public class joinDemo1 extends JFrame
{
//继承
private int x=100, y=100, r=100;

//初始值
public joinDemo1()
{
super("小图形");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setSize(800, 600);
this.setVisible(true);
Thread thread=new Thread(new Graphicss());
thread.start();

}
public void paint(Graphics g)
{
super.paint(g);
g.fillOval(x, y, r, r);
}
public static void main(String[] args)
{
new joinDemo1();
}

class Graphicss implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub

for (int j = 0; j <= 240; j++) {
revalidate();
// System.out.println(j);
try {
Thread.sleep(1000);// 当前线程休眠0.01秒

} catch (InterruptedException e) {
e.printStackTrace();
}

y=y+j;
repaint();

}

}
}
}

现在再跑,试试,自己分析一下原因
个人意见,仅供参考!希望帮得到你
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式