许多 GUI 应用程序都有计量表,以预期总活动的百分比表示到目前为止完成活动所取得的进展。编写一个程序以显示进度表,如下所示。米由一个带有 11 个标签列的窗口组成。前 10 个标签表示 10% 的进度步骤,最初为红色。底部标签以文本百分比形式显示剩余活动量,最初设置为“0%”。创建功能以模拟进度为 10% 的步骤。为此,用户在 Eclipse 内部的控制台上反复按回车键(为此使用 Scanner 对象)。每次,最上面的红色标签都会更改为绿色,进度标签值会递增 10,直到该值为 100%。确保在用户尝试超过 100% 时不会发生错误。
时间: 2023-12-03 21:47:38 浏览: 103
ChessAI:一个用Java编写的基于GUI的CHESS应用程序
以下是 Java Swing 实现的进度表程序:
```java
import javax.swing.*;
import java.awt.*;
import java.util.Scanner;
public class ProgressBarDemo extends JFrame {
private JLabel[] progressLabels;
private JLabel percentageLabel;
public ProgressBarDemo() {
super("Progress Bar Demo");
// Create the progress labels
progressLabels = new JLabel[10];
for (int i = 0; i < progressLabels.length; i++) {
progressLabels[i] = new JLabel();
progressLabels[i].setPreferredSize(new Dimension(30, 30));
progressLabels[i].setOpaque(true);
progressLabels[i].setBackground(Color.RED);
getContentPane().add(progressLabels[i]);
}
// Create the percentage label
percentageLabel = new JLabel("0%");
percentageLabel.setHorizontalAlignment(SwingConstants.CENTER);
getContentPane().add(percentageLabel, BorderLayout.SOUTH);
// Set up the frame
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 100);
setVisible(true);
}
public void updateProgress(int percentage) {
if (percentage > 100) {
percentage = 100;
}
int completedSteps = percentage / 10;
for (int i = 0; i < completedSteps; i++) {
progressLabels[i].setBackground(Color.GREEN);
}
percentageLabel.setText(percentage + "%");
}
public static void main(String[] args) {
ProgressBarDemo progressBarDemo = new ProgressBarDemo();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("Press Enter to simulate progress: ");
scanner.nextLine();
int currentPercentage = Integer.parseInt(progressBarDemo.percentageLabel.getText().replace("%", ""));
progressBarDemo.updateProgress(currentPercentage + 10);
if (currentPercentage == 100) {
break;
}
}
scanner.close();
}
}
```
在这个程序中,我们创建了一个继承自 JFrame 的类 ProgressBarDemo。它包含了一个 JLabel 数组来表示进度条中的每个步骤,以及一个 JLabel 来显示当前进度百分比。在构造函数中,我们创建了这些标签并将它们添加到窗口中。
updateProgress() 方法用于更新进度条。它接受一个整数参数,表示当前进度百分比。如果这个百分比大于 100,我们将其设置为 100。然后,我们计算已完成的步骤数,并将这些步骤的标签颜色更改为绿色。最后,我们更新百分比标签的文本。
在 main() 方法中,我们创建了一个 ProgressBarDemo 实例,并使用 Scanner 对象来模拟进度。每当用户按回车键时,我们将当前进度百分比加 10 并调用 updateProgress() 方法来更新进度条。如果当前百分比已经达到 100,我们退出循环并关闭 Scanner 对象。
阅读全文