问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用JAVA实现多线程编写,使得许多小球在界面内循环跳动

发布网友 发布时间:2022-05-07 16:35

我来回答

2个回答

热心网友 时间:2022-06-30 17:43

下面这段代码应该符合你的需求

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class BounceThread
{ public static void main(String[] args)
{ JFrame frame = new BounceThreadFrame();
frame.show();
}
}

class BounceThreadFrame extends JFrame
{ public BounceThreadFrame()
{ setSize(300, 200);
setTitle("Bounce");

addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
} );

Container contentPane = getContentPane();
canvas = new JPanel();
contentPane.add(canvas, "Center");
JPanel p = new JPanel();
addButton(p, "Start",
new ActionListener()
{ public void actionPerformed(ActionEvent evt)
{ Ball b = new Ball(canvas);
b.start();
}
});

addButton(p, "Close",
new ActionListener()
{ public void actionPerformed(ActionEvent evt)
{ canvas.setVisible(false);
System.exit(0);
}
});
contentPane.add(p, "South");
}

public void addButton(Container c, String title,
ActionListener a)
{ JButton b = new JButton(title);
c.add(b);
b.addActionListener(a);
}

private JPanel canvas;
}

class Ball extends Thread
{ public Ball(JPanel b) { box = b; }

public void draw()
{ Graphics g = box.getGraphics();
g.fillOval(x, y, XSIZE, YSIZE);
g.dispose();
}

public void move()
{ if (!box.isVisible()) return;
Graphics g = box.getGraphics();
g.setXORMode(box.getBackground());
g.fillOval(x, y, XSIZE, YSIZE);
x += dx;
y += dy;
Dimension d = box.getSize();
if (x < 0)
{ x = 0; dx = -dx; }
if (x + XSIZE >= d.width)
{ x = d.width - XSIZE; dx = -dx; }
if (y < 0)
{ y = 0; dy = -dy; }
if (y + YSIZE >= d.height)
{ y = d.height - YSIZE; dy = -dy; }
g.fillOval(x, y, XSIZE, YSIZE);
g.dispose();
}

public void run()
{ try
{ draw();
for (int i = 1; i <= 1000; i++)
{ move();
sleep(5);
}
}
catch(InterruptedException e) {}
}

private JPanel box;
private static final int XSIZE = 10;
private static final int YSIZE = 10;
private int x = 0;
private int y = 0;
private int dx = 2;
private int dy = 2;
}

热心网友 时间:2022-06-30 17:43

炯。。。

怎么也说的清楚一点吧

估计你们老师布置题目时也不可能就这么一句话!!!!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
十亿韩元折合人民币是多少阿? 邮政银行卡余额查询 邮政储蓄查询余额怎么查 艰难 的国运与雄健的国民读后感500(把以前与现在作对比) 初一下册人教版 艰难的国运与雄健的国民 读后感300字 今日头条哪个版本的有电脑版电脑版今日头条怎么下载 今日头条在电脑上如何安装今日头条怎样就安装到电脑上了 如何评价武庙? 武经总要前集概述 武经总要军事思想 Java,物体从一万米高空掉落的反弹行为,小球每落地一次就会反弹原高度一半的距离,用for循环计算 java小球碰撞窗体边缘来回反弹的代码 求一个Java动画,一个小球在屏幕上碰到边缘就反弹无限循环 牙膏洗衣服为什么会掉色? 我用牙膏洗衣服,不小心把衣服洗褪色了,一块一块的,是一件橘红色的衣服,有什么办法可以恢复颜色吗? 真丝衣服洗后有白霜真丝衣服用牙膏洗过以后一块白一块白怎么办。_百度... 牙膏洗油渍后衣服发白怎么办 衣服滴上油用牙膏洗了以后那一片掉色了怎么办 牙膏洗深色衣服后褪色怎么补救 牙膏洗衣服褪色怎么办? 我的牛仔裤上弄上了牙膏我用手巾擦可是把牛仔裤擦掉色了。怎么办呢 我的绿色纯棉衣服用牙膏和白醋洗完后,衣服上留下了一片发白,怎么办? 浅绿色棉袄用牙膏洗褪色了 能复原吗 裤子涂上牙膏揉搓后变色怎么处理? 什么软件可以改变自己的声音,产生特效声音 yy语音常用的特效声音 SketchUp不用vr如何渲染效果图?13年的SU大神一招,让你轻松搞定 vray for sketchup 怎么渲染出来1:200的立面图 会议活动记录恪式怎么写? 怎么抓取淘宝图片? java程序,用for循环和位移运算符求一小球从10000米落下,每次反弹一半高度,问第十次的高度 Eclipse 写 java小程序。 6个小球碰撞反弹。我知道怎么碰壁反弹。我想要在碰撞过程中小球互相碰撞也反弹。 java编程题,请教 !!! eclupse多线程,发射弹球遇边界弹回java编程 java编程里怎么让乒乓球反弹 JAVA小球每次落地后反弹为高度的一半, JAVA如何实现小球的弹性碰撞 java中设置一个小球弹跳会什么用线程呢 java实现一个小球的自由落体运动 JAVA编程小球碰撞怎么输出碰撞次数 java 小球撞砖游戏代码 JAVA编程。为何小球能在窗口内弹跳,而由键盘上下左右键控制的矩形方框在窗口内没有反应?求大神解答 Java小球移动,下落碰到边缘向上返回。 java程序:编写一个程序,让一个小球在JFrame中滚动,当碰边缘时则选择一个角度返回. 快手用登不上去一直显示账号异常,过几天再登录还会显示登录异常吗 请问我为什么快手无法登了 word表格如何设置三线表格顶线、底线和栏目线、辅线粗度不一样 网页制作是什么 京东后台忘记打单点出库了怎么办 网点管家多个京东怎么打单