用Java编写一个应用程序,除了主线程外,还有两个线程:first和second。First负责模拟一个红色方框从坐标(10,60)运动到(100,60);second负责模拟一个绿色方框从坐标(100,60)运动到(200,60)。
时间: 2024-01-28 14:03:47 浏览: 82
好的,以下是一个用 Java 实现的示例程序,其中使用了 JavaFX 库来创建图形界面,使用了 Java 多线程来控制方框的运动。
```java
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class MovingBox extends Application {
private Rectangle redBox;
private Rectangle greenBox;
@Override
public void start(Stage primaryStage) throws Exception {
Pane root = new Pane();
Scene scene = new Scene(root, 300, 150);
redBox = new Rectangle(10, 60, 50, 20);
redBox.setFill(Color.RED);
greenBox = new Rectangle(100, 60, 50, 20);
greenBox.setFill(Color.GREEN);
root.getChildren().addAll(redBox, greenBox);
primaryStage.setScene(scene);
primaryStage.show();
Thread first = new Thread(() -> {
try {
while (redBox.getX() < 100) {
Platform.runLater(() -> redBox.setX(redBox.getX() + 5));
Thread.sleep(50);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
});
Thread second = new Thread(() -> {
try {
while (greenBox.getX() < 200) {
Platform.runLater(() -> greenBox.setX(greenBox.getX() + 5));
Thread.sleep(50);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
});
first.start();
second.start();
}
public static void main(String[] args) {
launch(args);
}
}
```
在这个程序中,我们首先创建了一个 JavaFX 应用程序,并在其中创建了一个 Pane 和两个 Rectangle 对象,分别表示红色和绿色的方框。然后,我们使用 Java 多线程来控制这两个方框的运动过程。
具体来说,我们使用了 Thread 类和 Runnable 接口来创建并启动了两个线程,分别用于控制红色和绿色方框的运动。在每个线程的 run() 方法中,我们使用了一个 while 循环来不断更新方框的位置,直到它到达了终点位置。我们还使用了 Platform.runLater() 方法来确保更新 UI 的操作在 JavaFX 应用程序的主线程中执行,并使用了 Thread.sleep() 方法来模拟方框的运动延迟。
最后,我们调用了 main() 方法来启动整个程序。
阅读全文