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();
}
}
Java 线程代码中 分开写了多个Thread.sleep(2000);却是在集中执行sleep效果如何制造成分散sleep的效果
答案:3 悬赏:20 手机版
解决时间 2021-12-24 06:43
- 提问者网友:王者佥
- 2021-12-23 12:16
最佳答案
- 五星知识达人网友:往事隔山水
- 2021-12-23 13:09
Thread.sleep需要放在synchronized关键字声明的代码块或者方法里 我好想从你代码里面找不到这个关键字
全部回答
- 1楼网友:持酒劝斜阳
- 2021-12-23 15:06
你启动了吗?用start方法启动。还有你先把休眠时间写的短一点 如果可以执行的话 再写成300000
- 2楼网友:不想翻身的咸鱼
- 2021-12-23 14:16
你在代码块中或方法调用Thread.sleep需要的代码,我很怀念没有找到这个关键字synchronized关键字声明
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |