用Java编写选号程序,在窗体中安排6个标签,每个标签上显示0-9之间的一位数字,每位数字用一个线程控制其变化,单击“停止”则所有标签数字停止变化。
时间: 2024-02-28 18:54:14 浏览: 98
好的,我来解答这个问题。
首先,你需要创建一个 Java 窗口应用程序,并在窗口中添加 6 个标签来显示数字。可以使用 Java Swing 库来实现窗口和标签的创建。
接下来,你需要编写一个线程类来控制每个标签数字的变化。以下是一个示例线程类的代码:
```java
import javax.swing.JLabel;
public class NumberThread extends Thread {
private JLabel label;
private volatile boolean running = true;
public NumberThread(JLabel label) {
this.label = label;
}
public void run() {
while (running) {
int number = (int) (Math.random() * 10);
label.setText(Integer.toString(number));
try {
Thread.sleep(100); // 每隔100毫秒改变一次数字
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void stopThread() {
running = false;
}
}
```
在 run() 方法中,我们使用 Math.random() 生成一个 0 到 9 之间的随机数,并将其设置为标签的文本。然后,线程休眠 100 毫秒,以便人眼能够看到数字的变化。
为了能够停止所有线程的运行,我们需要在窗口中添加一个“停止”按钮,并为其添加一个事件监听器。在事件监听器中,我们可以调用每个线程的 stopThread() 方法来停止线程的运行。
以下是一个示例窗口类的代码:
```java
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class NumberWindow extends JFrame {
private NumberThread[] threads = new NumberThread[6];
public NumberWindow() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
setLocationRelativeTo(null);
JPanel panel = new JPanel();
for (int i = 0; i < 6; i++) {
JLabel label = new JLabel("0");
panel.add(label);
NumberThread thread = new NumberThread(label);
thread.start();
threads[i] = thread;
}
JButton stopButton = new JButton("停止");
stopButton.addActionListener(e -> {
for (NumberThread thread : threads) {
thread.stopThread();
}
});
panel.add(stopButton);
add(panel);
setVisible(true);
}
public static void main(String[] args) {
new NumberWindow();
}
}
```
在窗口构造函数中,我们创建 6 个标签和 6 个线程,并将每个线程与一个标签相关联。然后,我们将每个线程启动,并将它们存储在一个数组中以便稍后停止它们的运行。
最后,我们创建一个“停止”按钮,并在其上添加一个事件监听器,以便在单击该按钮时停止所有线程的运行。
这就是用 Java 编写选号程序的基本步骤。希望对你有所帮助!
阅读全文