Erstellen eine Java-Fortschrittsanzeige mit der JProgressBar-Klasse

Mehvish Ashiq 15 Februar 2024
Erstellen eine Java-Fortschrittsanzeige mit der JProgressBar-Klasse

Dieses Tutorial soll verstehen, wie wir mit der Klasse JProgressBar in der SWING-Anwendung einen Java-Fortschrittsbalken erstellen können. Wir werden auch lernen, wie Zahlen und Text angezeigt werden, wenn man berücksichtigt, bis zu welchem ​​Füllstand der Fortschrittsbalken gefüllt ist.

Verwenden Sie die Klasse JProgressBar, um einen Java-Fortschrittsbalken zu erstellen

Angenommen, wir laden eine Datei hoch/herunter und die Operation wird im Hintergrund ausgeführt, ohne uns zu benachrichtigen. Wir können stundenlang sitzen und die Maschine den Upload/Download durchführen lassen.

Hier ist der Fortschrittsbalken hilfreich und zeigt an, wie viel Arbeit erledigt wurde. Beginnen Sie mit dem horizontalen Fortschrittsbalken mit der Klasse JProgressBar, einem Widget, das einen Fortschrittsbalken für zeitaufwändige Aufgaben anzeigt.

Beispielcode:

import java.awt.*;
import javax.swing.*;

public class jProgressBarDemoOne {
  public static void main(String[] args) {
    final int MAXIMUM = 100;
    final JFrame jFrame = new JFrame("JProgress Demo One");

    // create horizontal progress bar
    final JProgressBar progressBar = new JProgressBar();
    progressBar.setMinimum(0);
    progressBar.setMaximum(MAXIMUM);
    progressBar.setStringPainted(true);

    // add progress bar to the content pane layer
    jFrame.setLayout(new FlowLayout());
    jFrame.getContentPane().add(progressBar);
    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jFrame.setSize(300, 200);
    jFrame.setVisible(true);

    // update progressbar staring from 0 to 100
    for (int i = 0; i <= MAXIMUM; i++) {
      final int currentNumber = i;
      try {
        SwingUtilities.invokeLater(new Runnable() {
          public void run() {
            progressBar.setValue(currentNumber);
          }
        });
        java.lang.Thread.sleep(100);
      } catch (InterruptedException event) {
        JOptionPane.showMessageDialog(jFrame, event.getMessage());
      }
    }
  }
}

Ausgabe:

Erstellen Sie einen Java-Fortschrittsbalken mit der Klasse jprogressbar - Zahlen auf dem Fortschrittsbalken Teil eins

Erstellen Sie einen Java-Fortschrittsbalken mit der Klasse jprogressbar - Zahlen auf dem Fortschrittsbalken, Teil zwei

Innerhalb der main-Funktion weisen wir der MAXIMUM-Variable 100 zu, die den Abschluss der Aufgabe anzeigt, wenn diese Zahl auf dem Fortschrittsbalken sichtbar ist.

Der Konstruktor JFrame wird erstellt, um ein Fenster auf dem Computerbildschirm anzuzeigen, und es ist ein Basisfenster für andere Komponenten, auf die sie sich verlassen, beispielsweise Bedienfelder, Schaltflächen, Menüleiste usw.

Als nächstes erstellen wir eine Konstruktion der Klasse JProgressBar, um einen horizontalen Fortschrittsbalken zu erstellen. Die Methoden setMinimum() und setMaximum() nehmen eine ganze Zahl als Argument, das verwendet wird, um den minimalen und maximalen Wert festzulegen, der im Datenmodell des Fortschrittsbalkens gespeichert ist.

Die Methode setStringPainted() nimmt einen booleschen Wert, um zu entscheiden, ob der Fortschrittsbalken einen Fortschrittsstring darstellen soll oder nicht. Der String wird gerendert, wenn er true ist; ansonsten nicht.

Die Methode setLayout() ermöglicht es uns, das Layout des Containers als FlowLayout für dieses Tutorial festzulegen. Das FlowLayout fügt die Elemente in einem sequentiellen Fluss (ein Element nach dem anderen in einer Zeile) in den Container ein und verschiebt das Element in die nächste Zeile, wenn es nicht auf die aktuelle Zeile passt.

Für den Moment haben wir ein Fenster erstellt, das Layout des Containers festgelegt und einen horizontalen Balken mit minimalem und maximalem Wert erstellt, und es ist Zeit, den Fortschrittsbalken zum Container hinzuzufügen.

Wir verwenden die Methode getContentPane(), die verwendet wird, um auf die Ebene des Inhaltsbereichs zuzugreifen und uns das Hinzufügen des Objekts zu ihr zu ermöglichen.

Wenn der Benutzer auf die Kreuzschaltfläche (X) klickt, wird das Ereignis zum Schließen des Fensters ausgelöst, wodurch die Funktion setDefaultCloseOperation() die Anwendung schließen kann. setSize() wird verwendet, um die width und height des Fensters einzustellen, während setvisible() das Fenster den Benutzern anzeigt, wenn es true wird.

Schließlich aktualisieren die for-Schleifen den Fortschrittsbalken, der bei 0 % beginnt und bis 100 % reicht. Der nächste Beispielcode zeigt anstelle von Zahlen Text auf dem Fortschrittsbalken an.

Beispielcode:

import java.awt.*;
import javax.swing.*;

public class jProgressBarDemoTwo {
  static int MAXIMUM = 100;
  static JFrame jFrame = new JFrame("JProgress Demo");
  // create horizontal progress bar
  static JProgressBar progressBar = new JProgressBar();

  public static void main(String[] args) {
    progressBar.setMinimum(0);
    progressBar.setMaximum(MAXIMUM);
    progressBar.setStringPainted(true);

    // add progress bar to the content pane layer
    jFrame.setLayout(new FlowLayout());
    jFrame.getContentPane().add(progressBar);

    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jFrame.setSize(300, 200);
    jFrame.setVisible(true);

    // update progressbar by displaying text on it
    int currentNumber = 0;
    try {
      while (currentNumber <= MAXIMUM) {
        // set text considering the level to which the bar is colored/filled
        if (currentNumber > 30 && currentNumber < 70)
          progressBar.setString("wait for sometime");
        else if (currentNumber > 70)
          progressBar.setString("almost finished loading");
        else
          progressBar.setString("loading started");

        // color/fill the menu bar
        progressBar.setValue(currentNumber + 10);
        // delay thread
        Thread.sleep(3000);
        currentNumber += 20;
      }
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

Ausgabe::

Erstellen Sie einen Java-Fortschrittsbalken mit der Klasse jprogressbar - Text auf dem Fortschrittsbalken Teil eins

Erstellen Sie einen Java-Fortschrittsbalken mit der Klasse jprogressbar - Text auf dem Fortschrittsbalken, Teil zwei

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - Java GUI