Yongkang  Shuangyu  Ipar  és  Kereskedelem  Co.,  Kft

Hogyan lehet létrehozni egy előrehaladási sávot a JProgressBar segítségével a Swing -ben?

Jul 28, 2025

Hé! Swing -beszállítóként első kézből láttam, mennyire fontos a vonzó és funkcionális felhasználói interfészek. Az egyik remek kis elem, amely valóban javíthatja a felhasználói élményt, a JProgressbar a Swing -ben. Ebben a blogbejegyzésben átmegyek Önt, hogyan lehet létrehozni egy előrehaladási sávot a JProgressBar segítségével a Swing -ben.

Mi az a JProgressBar?

Az első dolgok először beszéljünk arról, hogy mi a JProgressBar. Ez egy grafikus elem a Java Swing Library -ben, amelyet egy feladat előrehaladásának bemutatására használnak. Valószínűleg látta az előrehaladási sávokat, amikor egy fájlt letöltött vagy egy program telepítése. A felhasználóknak vizuális jelzést adnak arról, hogy mekkora a feladat teljes, és mennyit kell menni.

A projekt beállítása

Mielőtt elkezdenénk létrehozni az előrehaladási sávot, be kell állítanunk egy alapvető Java projektet Swing -rel. Feltételezem, hogy a Java telepítve van a gépedre, és egy Java IDE, mint például az Intellij ötlet vagy az Eclipse.

Itt van egy egyszerű kódrészlet az alapvető lengőablak létrehozásához:

Import javax.swing.*; Import java.awt.*; nyilvános osztály ProgressBarExample {nyilvános statikus void main (string [] args) {jframe keret = új jframe ("Progress Bar példa"); Frame.SetDefaultCloseOperation (jframe.exit_on_close); Frame.Setsize (400, 200); Frame.SetLayout (új FlowLayout ()); // Hozzáadjuk az előrehaladási sávot később a keret.SetVisible (true); }}

Ez a kód létrehoz egy egyszerű ablakot, amelynek címe: "Progress Bar Példa". Beállítja az ablak és az elrendezéskezelő méretétÁramlás- Most adjuk hozzá az előrehaladási sávot.

A JProgressBar létrehozása

A JProgressBAR hozzáadása az ablakunkhoz elég egyszerű. Csak létrehoznunk kell egy példánytEláraszthatóés adja hozzá a kerethez.

Import javax.swing.*; Import java.awt.*; nyilvános osztály ProgressBarExample {nyilvános statikus void main (string [] args) {jframe keret = új jframe ("Progress Bar példa"); Frame.SetDefaultCloseOperation (jframe.exit_on_close); Frame.Setsize (400, 200); Frame.SetLayout (új FlowLayout ()); JProgressBar ProgressBar = új JProgressBar (); Frame.Add (ProgressBar); Frame.setVisible (igaz); }}

A kód futtatásakor egy ablakot láthat, amelynek tetején egy előrehaladó sáv van. De jelenleg az előrehaladási sáv üres, mert nem állítottunk be semmilyen értéket.

A minimum és a maximális érték beállítása

Az előrehaladási sáv minimális és maximális értéke van, amely meghatározza az előrehaladás tartományát. Alapértelmezés szerint a minimális érték 0, a maximális érték pedig 100. Ezeket az értékeket megváltoztathatjuk asetMinimuméssetMaximummód.

Import javax.swing.*; Import java.awt.*; nyilvános osztály ProgressBarExample {nyilvános statikus void main (string [] args) {jframe keret = új jframe ("Progress Bar példa"); Frame.SetDefaultCloseOperation (jframe.exit_on_close); Frame.Setsize (400, 200); Frame.SetLayout (új FlowLayout ()); JProgressBar ProgressBar = új JProgressBar (); ProgressBar.SetMinimum (0); ProgressBar.SetMaximum (200); Frame.Add (ProgressBar); Frame.setVisible (igaz); }}

Ebben a példában az előrehaladási sáv maximális értékét 200 -ra állítjuk. Ez azt jelenti, hogy az előrehaladási sáv tele lesz, ha az érték eléri a 200 -at.

Az előrehaladás frissítése

Most, hogy beállítjuk az előrehaladási sávunkat, a feladat előrehaladtával frissítenünk kell annak értékét. Szimuláljunk egy olyan feladatot, amelynek időbe telik, hogy befejezzék és frissítsük az előrehaladási sávot.

Import javax.swing.*; Import java.awt.*; nyilvános osztály ProgressBarExample {nyilvános statikus void main (string [] args) {jframe keret = új jframe ("Progress Bar példa"); Frame.SetDefaultCloseOperation (jframe.exit_on_close); Frame.Setsize (400, 200); Frame.SetLayout (új FlowLayout ()); JProgressBar ProgressBar = új JProgressBar (); ProgressBar.SetMinimum (0); ProgressBar.SetMaximum (100); Frame.Add (ProgressBar); Frame.setVisible (igaz); // Szimuláljon egy feladatot (int i = 0; i <= 100; i ++) {végleges int progress = i; Próbálja ki a {Thread.sleep (100); } catch (megszakítás e) {e.printTackTrace (); } SwingTilities.Invokelater (() -> {ProgressBar.SetValue (Progress);}); }}}

Ebben a kódban a-raHurok, hogy szimuláljon egy olyan feladatot, amely 100 lépést igényel. HasználjukSzál.sleep (100)A szál szüneteltetése az egyes lépések között 100 milliszekundumra. Mi is használjukSwingutilitivity.invokelaterAz Esemény Dispatch szál (EDT) előrehaladási sávjának frissítéséhez. Ez azért fontos, mert az összes GUI -frissítést az EDT -n kell elvégezni.

Címke hozzáadása az előrehaladási sávhoz

Hozzáadhatunk egy címkét az előrehaladási sávhoz, hogy megmutassuk a befejezés százalékát. Csak fel kell hívnunk asetstring -festettmódszerigazés az előrehaladási sáv automatikusan megjeleníti a százalékot.

Import javax.swing.*; Import java.awt.*; nyilvános osztály ProgressBarExample {nyilvános statikus void main (string [] args) {jframe keret = új jframe ("Progress Bar példa"); Frame.SetDefaultCloseOperation (jframe.exit_on_close); Frame.Setsize (400, 200); Frame.SetLayout (új FlowLayout ()); JProgressBar ProgressBar = új JProgressBar (); ProgressBar.SetMinimum (0); ProgressBar.SetMaximum (100); ProgressBar.SettStringPainted (igaz); Frame.Add (ProgressBar); Frame.setVisible (igaz); // Szimuláljon egy feladatot (int i = 0; i <= 100; i ++) {végleges int progress = i; Próbálja ki a {Thread.sleep (100); } catch (megszakítás e) {e.printTackTrace (); } SwingTilities.Invokelater (() -> {ProgressBar.SetValue (Progress);}); }}}

Most, amikor futtatja a kódot, látni fogja, hogy a befejezés százalékos aránya jelenik meg az előrehaladási sávon.

Hozzáadva valamilyen stílust

Testreszabhatjuk a Progress Bar megjelenését is. Például megváltoztathatjuk az előrehaladási sáv színét asetForerountyéskanyargósmód.

Import javax.swing.*; Import java.awt.*; nyilvános osztály ProgressBarExample {nyilvános statikus void main (string [] args) {jframe keret = új jframe ("Progress Bar példa"); Frame.SetDefaultCloseOperation (jframe.exit_on_close); Frame.Setsize (400, 200); Frame.SetLayout (új FlowLayout ()); JProgressBar ProgressBar = új JProgressBar (); ProgressBar.SetMinimum (0); ProgressBar.SetMaximum (100); ProgressBar.SettStringPainted (igaz); ProgressBar.SetForeGround (color.Green); ProgressBar.SetBackground (color.light_gray); Frame.Add (ProgressBar); Frame.setVisible (igaz); // Szimuláljon egy feladatot (int i = 0; i <= 100; i ++) {végleges int progress = i; Próbálja ki a {Thread.sleep (100); } catch (megszakítás e) {e.printTackTrace (); } SwingTilities.Invokelater (() -> {ProgressBar.SetValue (Progress);}); }}}

Ebben a példában az előrehaladási sáv előtér színét zöldre és a háttér színét világosszürke -re állítottuk.

Következtetés

Az előrehaladási sáv létrehozása a JProgressBar segítségével a Swing -ben egy egyszerű és hatékony módszer a Java alkalmazások felhasználói élményének javítására. A blogbejegyzésben vázolt lépéseket követve könnyedén létrehozhat egy előrehaladási sávot, beállíthatja annak értékeit, frissítheti annak előrehaladását és testreszabhatja megjelenését.

O1CN01b2vMFS1pVg8VIuEYN_!!2208053155366-0-cib16447738624_626637899

Ha érdekli a swing -termékeinket, széles választékot kínálunk. Nézze meg aFehér hintakészletek gyerekeknek,Hasznos sátor a család számára, ésFa hinta a parkhoz- Ha bármilyen kérdése van, vagy meg akarja vitatni a potenciális vásárlást, nyugodtan forduljon hozzánk. Mindig örömmel segítünk!

Referenciák

  • Java swing dokumentáció
  • Oracle Java oktatóanyagok
goTop