Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的多线程_Java_Applet - Fatal编程技术网

java中的多线程

java中的多线程,java,applet,Java,Applet,我想在我的小程序中使用4个线程,使用的Runnable接口希望在所需位置移动所有线程 在我的小程序中,云图像在y轴上从o移动到750,当云在y轴上到达150时,直升机开始移动,直到到达350,然后该线程停止。 然后当我的直升机到达200时,一个人的图像出来,走到x轴,当它走了5到10毫秒时,它就会停下来 以下是我的代码: import java.applet.* ; package com.pack; import java.applet.*; import java.awt.*; impo

我想在我的小程序中使用4个线程,使用的Runnable接口希望在所需位置移动所有线程

在我的小程序中,云图像在y轴上从o移动到750,当云在y轴上到达150时,直升机开始移动,直到到达350,然后该线程停止。 然后当我的直升机到达200时,一个人的图像出来,走到x轴,当它走了5到10毫秒时,它就会停下来

以下是我的代码:

import java.applet.* ;

package com.pack;

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class HelicopterScene extends Applet {
    Image a, b, c;
    int i, j, h, p;

    public void init() {
        i = 20;
        j = 750;
        h = 0;
        a = getImage(getCodeBase(), "HelicopterAttack.jpg");
        b = getImage(getCodeBase(), "pppp.png");
        c = getImage(getCodeBase(), "helicopter1.png");
    }

    public void paint(Graphics g) {
        showStatus(" Helicopter Scene Applet is started.....");
        g.drawImage(a, 0, 0, this);
        if (i <= 750 && j >= 20) {
            if (i >= 150) {
                g.drawImage(c, h, 255, 150, 35, this);
                h++;
                repaint();
                try {
                    Thread.sleep(20);
                } catch (InterruptedException w) {
                }
            }

            g.drawImage(b, j, 120, 90, 70, this);
            g.drawImage(b, i, 180, 120, 70, this);
            i++;
            j--;
            repaint();
            try {
                Thread.sleep(10);
                if (i == 750 && j == 20) {
                    p = h;
                    g.drawImage(c, p, 255, 150, 35, this);
                    h++;
                    repaint();
                    try {
                        Thread.sleep(20);
                    } catch (InterruptedException w) {
                    }
                    i = 20;
                    j = 750;
                }
            } catch (InterruptedException e) {
            }
        }
    }
}
import java.applet.*;
包com.pack;
导入java.applet.*;
导入java.awt.*;
导入java.awt.event.*;
公共类直升机{
图像a、b、c;
inti,j,h,p;
公共void init(){
i=20;
j=750;
h=0;
a=getImage(getCodeBase(),“HelicopterAttack.jpg”);
b=getImage(getCodeBase(),“pppp.png”);
c=getImage(getCodeBase(),“helicopter1.png”);
}
公共空间涂料(图g){
showStatus(“直升机场景小程序已启动…”);
g、 drawImage(a,0,0,this);
如果(i=20){
如果(i>=150){
g、 drawImage(c、h、255、150、35,本);
h++;
重新油漆();
试一试{
睡眠(20);
}捕捉(中断异常w){
}
}
g、 drawImage(b,j,120,90,70,this);
g、 drawImage(b,i,180,120,70,this);
i++;
j--;
重新油漆();
试一试{
睡眠(10);
如果(i==750&&j==20){
p=h;
g、 drawImage(c,p,255,150,35,this);
h++;
重新油漆();
试一试{
睡眠(20);
}捕捉(中断异常w){
}
i=20;
j=750;
}
}捕捉(中断异常e){
}
}
}
}

首先,您永远不想在UI线程上睡觉。第二,你永远不想在UI线程上画画。您应该调查SwingUtilities.invokeLater()。

首先,您永远不想在UI线程上睡觉。第二,你永远不想在UI线程上画画。你应该调查SwingUtilities.invokeLater()。

如果这是一个家庭作业,请在问题上添加一个适当的标记。如果这是一个家庭作业,请在问题上添加一个适当的标记。你能告诉我怎么做吗?因为我是java概念的新手,所以如果您能帮助我,我将不胜感激。。。谢谢你的回复…你能告诉我怎么做吗?因为我是java概念的新手,所以如果您能帮助我,我将不胜感激。。。谢谢你的回复。。。