永发信息网

Java 线程代码中 分开写了多个Thread.sleep(2000);却是在集中执行sleep效果如何制造成分散sleep的效果

答案:3  悬赏:20  手机版
解决时间 2021-12-24 06:43
import java.awt.Color;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;import javax.swing.JLabel;
public class MyGame {
class MyJfream extends JFrame{
JLabel []she=new JLabel[5];
{
for(int i=0;i<=she.length-1;i++){
she[i]=new JLabel();
she[i].setOpaque(true);
she[i].setBackground(Color.red);
this.add(she[i]);
she[i].setBounds(i/20*20+100, i%20*20+100, 20, 20);
}
she[0].setBackground(Color.BLUE);
she[1].setBackground(Color.cyan);
she[2].setBackground(Color.orange);
she[3].setBackground(Color.magenta);
she[4].setBackground(Color.pink);
}
public MyJfream() {
this.setBounds(500, 100, 600, 600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(null);
this.getContentPane().setBackground(Color.gray);
this.setVisible(true);
jianting();
}
final int speed=20;
void jianting() {
KeyAdapter ka=new KeyAdapter() {
public void keyPressed(KeyEvent e) {
char ch=e.getKeyChar();
// 下面的代码分开写了5个sleep(2000)为什么实现的是sleep(10000);
// 如何造成分开的效果
if(ch=='s'){
she[0].setBounds(she[0].getX(),she[0].getY()+speed, 20, 20);
repaint();
try {
Thread.sleep(2000);
} catch (Exception e1) {
}
she[1].setBounds(she[1].getX(),she[1].getY()+speed, 20, 20);
repaint();
try {
Thread.sleep(2000);
} catch (Exception e1) {
}
she[2].setBounds(she[2].getX(),she[2].getY()+speed, 20, 20);
repaint();
try {
Thread.sleep(2000);
} catch (Exception e1) {
}
she[3].setBounds(she[3].getX(),she[3].getY()+speed, 20, 20);
repaint();
try {
Thread.sleep(2000);
} catch (Exception e1) {
}
she[4].setBounds(she[4].getX(),she[4].getY()+speed, 20, 20);
repaint();
try {
Thread.sleep(2000);
} catch (Exception e1) {
}
}
}
};
this.addKeyListener(ka);
}
}
public MyGame() {
new MyJfream();
}
public static void main(String[] args) {
new MyGame();
}
}
最佳答案
Thread.sleep需要放在synchronized关键字声明的代码块或者方法里 我好想从你代码里面找不到这个关键字
全部回答
你启动了吗?用start方法启动。还有你先把休眠时间写的短一点 如果可以执行的话 再写成300000
你在代码块中或方法调用Thread.sleep需要的代码,我很怀念没有找到这个关键字synchronized关键字声明
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何判断自己是不是备胎,被当做备胎的表现是
格力空调变频什么意思
交通事故,我撞掉对方两个门牙,我全责,我买
俄罗斯在国内最流行的歌那种挺饶舌的叫什么来
我买的个SS魔但是他天天把密码改!但是我还没
在铺设铁轨时,两条直轨必须是互相平行的,如
办到的拼音是什么
西游记 华晨宇 是自己填词还是改的歌
汉语言文学专业的学生怎么找工作?找哪方面的
—?—He is Andy’s father. A. How is he B
gta5 疯狂杀戮 怎么破坏载具
已知a,b,c是实数,根号《a的平方-2a+1》+《b+2
有两个关国科学家做过一个有趣的试验。他们在
为什么我的银行卡不能取钱了.密码正确啊!
拉蔬菜水果运输买什么车合适那
推荐资讯
若集合A={x||x|=x},B={x|x2-x>0},则A∩B=_
镇电社区居委会办公位置在哪啊?好找么?
阳光点的男孩名字
OPPO手机开机后一直停在开机界面怎么
you are so eager to join the school basket
On October, 6 Apple’s Board announced tha
约瑟传说盖亚怎么打
怎样删除文档中的空行
我在东方航空APP上买的机票,有一个值机选座
家庭装修包清工300元一平米贵吗
选女朋友哪中排第一呢?相貌身材,意志品质,
你如何看待中国资本市场发展与国际金融之间的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?