编写一个完整的Java程序满足1、编写一个GUI选号程序,在程序的主窗体中安排6个标签,每个标签上 显示一个数字,每个数字都在09之间变化。单击窗体上的“停止”按 钮使所有数字停止变化。
时间: 2024-12-18 13:21:48 浏览: 11
在Java中,你可以使用Swing库来创建图形用户界面(GUI),并结合Timer类来实现数字的动态更新。下面是一个简单的示例代码,展示了如何完成这个任务:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class NumberSelector extends JFrame {
private JLabel[] labels = new JLabel[6];
private int currentNumber = 0;
private boolean isRunning = true;
public NumberSelector() {
setTitle("数字选择程序");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建6个标签,并设置初始值为0
for (int i = 0; i < 6; i++) {
labels[i] = new JLabel(String.valueOf(currentNumber++ % 10));
labels[i].setBounds(i * 50, 50, 40, 40);
add(labels[i]);
}
JButton stopButton = new JButton("停止");
stopButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
isRunning = false;
stopTimer();
}
});
stopButton.setBounds(300, 250, 100, 40);
add(stopButton);
pack();
setLocationRelativeTo(null); // 将窗口居中
setVisible(true);
}
private void startTimer() {
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (!isRunning) {
return;
}
for (JLabel label : labels) {
label.setText(String.valueOf((currentNumber++) % 10));
}
}
});
timer.start();
}
private void stopTimer() {
if (timer != null && timer.isRunning()) {
timer.stop();
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new NumberSelector();
}
});
}
}
```
在这个程序中,我们首先创建了一个`JFrame`作为主窗口,设置了6个`JLabel`来显示数字。当点击"停止"按钮时,会停止定时器,使得数字不再变化。通过调用`startTimer()`和`stopTimer()`方法来控制数字的动态更新。
阅读全文